我遇到問題。目前的代碼工作正常,當我運行它通過的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