2013-01-02 96 views
3

我有2個文件的zip文件 我用:這是什麼異常的原因,產生java.io.IOException:流閉

while((entry = zis.getNextEntry()) != null){ 
    if(entry.getName() == null ? gomrokcode != null : !entry.getName().equals(gomrokcode)) 
     maxversion=0; 
    Scanner scanner = new Scanner(zis); 
    while(scanner.hasNextLine()){ 
     line = scanner.nextLine(); 
    } 
    scanner.close(); 
} 
zis.close(); 

用於訪問文件 我得到第一個文件,然後當我返回循環的第二個文件 開始我得到這個例外

SEVERE: null 
java.io.IOException: Stream closed 
at java.util.zip.ZipInputStream.ensureOpen(ZipInputStream.java:66) 
at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:115) 

的原因是什麼?

+3

我會冒險猜測**流被關閉**。 (顯示*完整*相關的代碼,因爲可能有其他地方有錯誤。) – 2013-01-02 22:55:09

+2

你的單行代碼並不能說明整個故事。顯示完整的代碼。 – fge

+0

爲什麼?我不寫zis.close(); –

回答

7

您用掃描儀包裝您的zis流,當您關閉掃描儀時,它將關閉zis流。因此,執行。

如果您刪除了scanner.close()調用,我想迭代會繼續。

相關問題