Java中的EOFexception在读取objectinputstream时

时间:2010-02-22 00:36:40

标签: java objectoutputstream eofexception

我想读取我输出到.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");
        }

1 个答案:

答案 0 :(得分:6)

请参阅Javadoc。 EOF时readObject()不返回null。抛出EOFException.它返回null的唯一方法是在另一端写入null,并且这不一定是终止读循环的好理由。

简而言之,你的代码是错误的。

注意'o'的初始化是多余的。

注意(2)除非NullPointerException,为空,否则您发布的代码不能抛出masterFile。这是一个严肃的报告还是只是猜测?