我读过其他类似的问题,但没有多大帮助。所以我在一个文件中有一些序列化的内容,我试图读取它并在控制台上打印它,内容被打印得很好,但是在最后,它显示的是一个EOFException。有任何方法来修正我的代码以避免这个异常吗?
try {
File file = new File("EnrolledStudentsSerial.txt");
FileInputStream fi = new FileInputStream(file);
ObjectInputStream input = new ObjectInputStream(fi);
while(true) {
System.out.println(input.readObject());
}
}
catch (IOException | ClassNotFoundException e) {
System.out.println("Error: " + e);
}发布于 2020-12-18 17:47:55
我不认为你想“避免”这个例外。
您需要知道何时输入结束,EOFException是什么告诉您,您已经到了输入的末尾。
相反,您希望停止将其视为错误条件,因为它不是一个错误,它是正常的和预期的。
try {
… code as before …
}
catch (EOFException e) {
// end of input, nothing to do here
}
catch (IOException | ClassNotFoundException e) {
System.out.println("Error: " + e);
}https://stackoverflow.com/questions/65361342
复制相似问题