3

私が使用するzipファイルには2つのファイルがあります:

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();

ファイルにアクセスするために最初のファイルを取得し、次に2番目のファイルのループの開始に戻ると、この例外が発生します

    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)

理由は何ですか?

4

1 に答える 1

7

ストリームをスキャナーでラップzisし、スキャナーを閉じるとzisストリームが閉じます。したがって、例外。

呼び出しを削除するscanner.close()と、反復が進むと思います。

于 2013-01-02T23:06:54.110 に答える