读取objectinputstream时Java中的EOFEException

读取objectinputstream时Java中的EOFEException,java,objectoutputstream,eofexception,Java,Objectoutputstream,Eofexception,我想读取已输出到.dat文件的多个对象(我自己的类术语),但我总是得到nullPointException或EOFEException ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(masterFile)); Object o = null; while(( o = inputStream.readObject()) != null){ T

我想读取已输出到.dat文件的多个对象(我自己的类术语),但我总是得到nullPointException或EOFEException

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");
        }

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

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

注意,“o”的初始化是冗余的


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

如果你得到一个EOFEException,可能是因为你已经到达了文件的结尾。是的,我想它已经到达了文件的结尾。我试过了,我只得到过EOFEException。在什么情况下会出现NullPointerException?如何解决
EOFEException
问题的可能重复?我是否应该将代码包装在
try/catch
块中并等待异常出现>这不是“问题”,而是异常。抓住它。