我有一个方法,在循环中我创建 Excel 文件的 FileoutputStream 对象。根据要求,每个文件位于不同的文件夹中。我还需要创建一个 zip 响应以及整个响应。有没有办法在 zipoutputstream 中添加这些 fileoutputstream 对象(在同一循环中,同时生成文件)?
将此视为伪代码
For Loop creating Fileoutputstream{
try(FileoutPutStream fileOut= new FileoutputStream(FilePath);
workbook.write(fileOut);
workbook.close();
///**add logic to add this file into zip.**
}
我尝试创建一个 zipoutputstream 对象并将内容写入 zip.entry() 但它不起作用。另外我很困惑这是否可能?
您可以创建一个 ZipFile 并像这样添加它们。
file
是 File
类的对象。 ZipFile
是从 import net.lingala.zip4j.ZipFile;
导入的。
try (ZipFile zipFile = new ZipFile("compressed.zip")) {
zipFile.addFile(file, zipParameters);
} catch (Exception e) {
log.error("error during zipping of file");
throw e;
}
zipParameters
在哪里
ZipParameters zipParameters = new ZipParameters();
zipParameters.setCompressionLevel(CompressionLevel.NORMAL);