我想读取输出到 .dat 文件的多个对象(我自己的类 Term),但我总是得到 nullPointErexception 或 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 处不返回 null。它会抛出 EOFException。
它可以返回 null 的唯一方法是在另一端写入 null,而这不一定是终止读取循环的好理由。
简而言之,您的代码是错误的。
注意 'o' 的初始化是多余的。
注意 (2) 您发布的代码不能抛出 NullPointerException,
除非 masterFile
为 null。这是一个严肃的报告还是一个猜测?
关于java - 读取对象输入流时Java中的EOFexception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2308128/