由于直接修改一个文件是不可能的,我只想修改一个文件,我只是创建一个新的zip文件,基本上包含模板的内容,并替换特定的文件,至少这是计划。
以下是我尝试的最重要的几句话:
Enumeration<? extends ZipEntry> entries = zif.entries();
while (entries.hasMoreElements()) {
ZipEntry currentEntry = entries.nextElement();
if (!currentEntry.isDirectory() && currentEntry.getSize() >0 && currentEntry.getCompressedSize() > 0)
{
System.out.println(currentEntry.getName() + ": " + currentEntry.getSize() + "-" + currentEntry.getMethod());
if (currentEntry.getName() != "file_i_want_to_change")
{
try {
this.zos.putNextEntry(currentEntry); // HERE the exception is thrown
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
}
java.util.zip.ZipException: invalid entry size (expected 39 but got 0 bytes)
at java.util.zip.ZipOutputStream.closeEntry(ZipOutputStream.java:228)
at java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:144)
at TestClass.replace(TestClass.java:117)
at TestClass.main(TestClass.java:10)
鉴于TestClass:117 is 有评论的那一行,就是它失败的地方。
有人看到我可能犯的错误吗?
提前感谢并致以最诚挚的问候