我按照以下链接编辑了 zip 文件的内容并写入另一个 zip 文件。
当我遵循这个时,它似乎工作正常,除了我得到的最后一次迭代
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/