要解决"Apache POI Zip 文件已关闭"的问题,你需要确保在关闭文件之前,所有的读写操作都已经完成。以下是一个示例代码,展示了如何正确地关闭 Zip 文件。
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class ApachePOIZipCloseExample {
public static void main(String[] args) {
XSSFWorkbook workbook = new XSSFWorkbook();
// 进行一些操作,比如创建表格、写入数据等
// ...
try {
// 创建文件输出流
FileOutputStream outputStream = new FileOutputStream("output.xlsx");
// 将工作簿写入输出流
workbook.write(outputStream);
// 关闭工作簿
workbook.close();
// 关闭输出流
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个示例中,首先创建了一个 XSSFWorkbook
对象,然后进行一些操作,比如创建表格、写入数据等。接下来,创建一个 FileOutputStream
对象来指定输出文件的路径。然后,使用 workbook.write(outputStream)
将工作簿写入输出流中。最后,记得关闭工作簿和输出流,以确保文件被正确关闭。
请注意,如果在关闭文件之前发生了任何异常或错误,你可能需要在错误处理程序中关闭文件。这样可以确保在发生异常时,文件仍然能够正确关闭。