java - 更改 zip 文件内的文件内容

标签 java file zip

我按照以下链接编辑了 zip 文件的内容并写入另一个 zip 文件。

orignal post here

当我遵循这个时,它似乎工作正常,除了我得到的最后一次迭代

java.util.zip.ZipException: invalid entry compressed size (expected 1780     
but got 1787 bytes)
at java.util.zip.ZipOutputStream.closeEntry(ZipOutputStream.java:217)
at  com.dtcc.cdts.components.configdeploy.renameBRKXML.main(renameBRKXML.java:66)

我确实有

zos.write(buf, 0, (len < buf.length) ? len : buf.length);

请帮忙

最佳答案

您需要为目标文件创建一个 ZipEntry 对象,该对象仅使用从源获取的 ZipEntry 对象的名称。

所以改变这个:

ZipEntry entryIn = (ZipEntry) e.nextElement();

像这样:

ZipEntry entryIn = (ZipEntry) e.nextElement();
ZipEntry destEntry = new ZipEntry (entryIn.getName());
zos.putNextEntry(destEntry); 

编辑

这是一个快速的 Google 搜索结果,证实了我的方法:http://sourceforge.net/p/retroweaver/bugs/63/

关于java - 更改 zip 文件内的文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32955643/

相关文章:

c# - 如何计算传输速率speed kb/s SOCKETS c#

Java/在第一行写入,由 out.write 编写

php - 从压缩文件中获取图像的高度和宽度

java - 使用 Java API 向 XSLT 程序提供参数

java - 我的代码是否正确计算数据集的熵/条件熵?

c++ - 同时读取两个不同的文件

linux - 1980年以前的Python zipfile写文件

python - Zip 作为列表理解

java - 未关闭的扫描仪的垃圾收集

java - 如何使用 SSHJ 通过 SCP 流式传输文件?