创建一个由多个 fileoutputStreams 对象组成的 zip

问题描述 投票:0回答:1

我有一个方法,在循环中我创建 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() 但它不起作用。另外我很困惑这是否可能?

apache-poi fileoutputstream zipoutputstream
1个回答
0
投票

您可以创建一个 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);
© www.soinside.com 2019 - 2024. All rights reserved.