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。它抛出EOFException.它可以返回 null 的唯一方法是,如果你在另一端写了一个 null,这不一定是终止读取循环的好理由。

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

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

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

于 2010-02-22T01:44:27.277 回答