gpt4 book ai didi

java - 将数据附加到 zip 文件上的条目 (ZipArchiveOutputStream)

转载 作者:行者123 更新时间:2023-12-01 12:30:57 26 4
gpt4 key购买 nike

我正在使用 ZipArchiveOutputStream 将一些数据写入 zip 文件的条目。我需要写入 file1,创建另一个 file2 条目,向该条目添加一些数据,然后以某种方式再次写入我之前写入的 file1。

我有以下内容:

File zipFile = new File("zipTest.zip");
ZipArchiveOutputStream zipOut;

try {
zipOut = new ZipArchiveOutputStream(zipFile);
ArchiveEntry file1 = new ZipArchiveEntry("file1.txt");
ArchiveEntry file2 = new ZipArchiveEntry("file2.txt");

zipOut.putArchiveEntry(file1);
zipOut.write("SOME TEXT FILE 1, LINE 1\n".getBytes());
zipOut.closeArchiveEntry();

zipOut.putArchiveEntry(file2);
zipOut.write("SOME TEXT FILE 2, LINE1\n".getBytes());
zipOut.closeArchiveEntry();

zipOut.putArchiveEntry(file1);
zipOut.write("SOME TEXT FILE 1, LINE 2\n".getBytes());
zipOut.closeArchiveEntry();

zipOut.finish();
zipOut.close();
} catch(...)

但是,只有“SOME TEXT FILE 1, LINE 1”被写入 file1 条目,当然,我想要这两行。

我意识到解决方案是编写一个完整的条目,然后编写另一个条目,等等,但就我而言,我想避免这种情况,因为我需要创建一些大型临时文件。

最佳答案

一旦关闭条目,您就无法返回并向同一条目添加更多数据,因此您所尝试的操作将不起作用。

但是,同一 zip 文件中具有相同名称的两个条目并不是错误。您只能按名称访问中央目录中的条目之一,但输出流将允许您添加它们,并且从结果文件中读取的 ZipArchiveInputStream 将为您提供这两个条目(输入流仅读取本地条目标题,而不是中央目录)。

关于java - 将数据附加到 zip 文件上的条目 (ZipArchiveOutputStream),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25924115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com