当我将条目写入这样的 zip 文件时:
ZipEntry ze = zin.getNextEntry();
while (ze != null) {
InputStream is = zf.getInputStream(ze);
zos.putNextEntry(ze);
int len;
while ((len = is.read(buffer)) >= 0) {
zos.write(buffer, 0, len);
}
zos.closeEntry();
ze = zin.getNextEntry();
}
在第二个 while 循环中出现以下异常:
java.util.zip.ZipException: invalid code lengths set
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:164)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
任何人都知道为什么会抛出这个异常,这是什么意思?
PS 我应该提到我在 JBoss 7.1.1 上的侦听器上运行它,以便从不同的文件夹压缩各种日志文件。每个文件夹都有一个线程。使用多个线程的事实会导致这个问题吗?