2

.datファイルに出力した複数のオブジェクト(自分のクラスTerm)を読み取りたいのですが、常にnullPointExceptionまたはEOFExceptionが発生します。

ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(masterFile));
        Object o = null;
        while(( o = inputStream.readObject()) != null){
            Term t = (Term)o;
            System.out.println("I found a term");
        }
4

1 に答える 1

6

Javadoc を参照してください。readObject()EOF で null を返しません。nullEOFException.を返すことができる唯一の方法は、反対側に null を書き込んだ場合であり、それは必ずしも読み取りループを終了する正当な理由ではありません。

要するに、あなたのコードは間違っています。

NB 'o' の初期化は冗長です。

NB (2) 投稿したコードは nullでNullPointerException,ない限りスローできません。masterFileそれは深刻な報告ですか、それとも単なる推測ですか?

于 2010-02-22T01:44:27.277 に答える