我遇到问题。目前的代码工作正常,当我运行它通过的IntelliJ, 但它有一个异常失败,当我在Maven中运行它3.关闭ZipInputStream在IntelliJ中正常工作,但在Maven中出现异常
public static boolean isZipContent(InputStream inputstream) throws IOException {
BufferedInputStream bis = new BufferedInputStream(inputstream);
ZipInputStream zis = new ZipInputStream(bis);
ZipEntry ze = zis.getNextEntry();
if (ze == null) {
return false;
}
zis.closeEntry();
zis.close();
bis.close();
return true;
}
例外:
java.util.zip.ZipException: invalid literal/lengths set at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:164) ~[na:1.7.0_06] at java.util.zip.ZipInputStream.read(ZipInputStream.java:193) ~[na:1.7.0_06] at java.util.zip.ZipInputStream.closeEntry(ZipInputStream.java:139) ~[na:1.7.0_06]
的zip文件蛮好看的时候我使用WinZip或其他方式手动打开它们 - 正如我所说的,IntelliJ中的所有功能都完美无缺。
我已经调试并检查文件编码,类加载器和一切,一切看起来平等的,但仍是一贯的代码失败,如果我跑使用Maven3测试,但在工作的IntelliJ。
它未能在zis.closeEntry();除了例外。 我确保在调试过程中流仍然打开。
我使用Java 1.6,Win7上。 Maven 3.0.4。我试过其他版本的Java,结果相同。
有没有人有什么事的想法?
在这两种情况下你使用的是同一个zip文件吗?你是如何创建它的?如果您没有使用WinZip创建它,请尝试使用WinZip创建一个zip文件并使用该zip文件。只要可能,WinZip就会更正zip文件,所以您可以使用WinZip查看zip文件并不能保证它是一个很好的zip文件。 – 2012-08-17 18:40:45
是的,它是相同的zip文件。它由一些程序创建。请注意,它在IntelliJ中运行时可以工作,所以它可能不是zip文件的问题... – DKIT 2012-08-21 07:38:54