读取objectinputstream时Java中的EOFEException
我想读取已输出到.dat文件的多个对象(我自己的类术语),但我总是得到nullPointException或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
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
块中并等待异常出现>这不是“问题”,而是异常。抓住它。