0

ZipEntryaに aを追加しよZipOutputStreamうとしていますが、バイトを書き込もうとすると問題が発生します。

ファイル名を にマップするZipEntryからを取得しました。この方法を選択したのは、大きな を扱っていて、をループしてファイルを探して取得するよりも簡単にその内容にアクセスできるようにしたいからです。HashMapZipEntriesZipInputStreamInputStreamZipEntry

これにより、エントリを追加した後にバイトを書き込もうとすると問題が発生します。これまでに見つけたすべてのソリューションには、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)

この例外を修正するにはどうすればよいですか?

4

1 に答える 1