阅读objectinputstream时Java中的EOFexception
我想读取已输出到.dat文件的多个对象(我自己的类Term),但我总是得到一个nullPointException或EOFException。阅读objectinputstream时Java中的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");
}
查看Javadoc。 readObject()在EOF处不返回空值。它抛出EOFException。它可以返回null的唯一方法是如果你在另一端写了一个null,这不一定是终止读循环的好理由。
总之你的代码是错误的。
注意'o'的初始化是多余的。
注意:(2)您发布的密码不能丢弃NullPointerException,
,除非masterFile
为空。这是一个严重的报告还是猜测?
可能的重复你如何解决'EOFException'问题?我是否应该将代码包装在try/catch块中并等待异常发生> – 2012-10-02 01:55:02
这不是一个'问题',它是一个例外。抓住它。 – EJP 2013-11-11 22:11:12
如果您收到EOFException,可能是因为您已达到文件末尾。 – 2010-02-22 00:39:12
是的,我认为它已经到达文件的末尾。 – user276712 2010-02-22 00:42:13
我试过这个,我只能得到EOFException。在什么情况下你会得到NullPointerException? – lins314159 2010-02-22 01:18:45