【问题标题】:changing contents of file inside zip file更改 zip 文件中的文件内容
【发布时间】:2016-01-02 12:36:27
【问题描述】:

我按照以下链接编辑了一个 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);

请帮忙

【问题讨论】:

  • 可以分享您遇到问题的代码。

标签: java file zip


【解决方案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/

【讨论】:

  • 实际上原始帖子(上面的链接)可以正常工作。我忘记了 else 块中的 zip 条目。
猜你喜欢
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多