更改zip文件中的文件内容

时间:2015-10-05 18:42:59

标签: 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);

请帮忙

1 个答案:

答案 0 :(得分:1)

您需要为目标文件创建 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/