我正在尝试将 a 添加ZipEntry
到 aZipOutputStream
但在尝试写入字节时遇到问题。
我ZipEntry
从HashMap
将文件名映射到它们的ZipEntries
. 我选择这种方法是因为我正在处理一个大文件ZipInputStream
,并且我希望能够比遍历InputStream
并查找文件并获取其ZipEntry
.
当我在添加条目后尝试写入字节时,这会导致问题。到目前为止,我发现的所有解决方案都需要ZipInputStream
.
这是代码:
ZipEntry ze = entryHash.get(pathToString(path));
zos.putNextEntry(ze);
zos.write(new byte[(int)ze.getSize()]); // Problem Here
zos.closeEntry();
我得到的错误是:
java.util.zip.ZipException: invalid entry compressed size (expected 389 but got 12 bytes)
at java.util.zip.ZipOutputStream.closeEntry(ZipOutputStream.java:248)
我该如何解决这个异常?