2013-01-02 97 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()调用,我想迭代会继续。

相关问题