带有 ObjectInputStream 的 EOFException
EOFException with ObjectInputStream
我读过其他与此类似的问题,但没有多大帮助。所以我在一个文件中有一些序列化的内容,我试图读取它并在控制台上打印它,内容打印正常但最后,它显示 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);
}
我认为你不想'avoid'这个例外。
您需要知道何时到达输入末尾,EOFException 告诉您您已经到达输入末尾。
相反,您想停止将其视为错误情况,因为它不是错误,所以它是正常的并且是预期的。
try {
… code as before …
}
catch (EOFException e) {
// end of input, nothing to do here
}
catch (IOException | ClassNotFoundException e) {
System.out.println("Error: " + e);
}
我读过其他与此类似的问题,但没有多大帮助。所以我在一个文件中有一些序列化的内容,我试图读取它并在控制台上打印它,内容打印正常但最后,它显示 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);
}
我认为你不想'avoid'这个例外。
您需要知道何时到达输入末尾,EOFException 告诉您您已经到达输入末尾。
相反,您想停止将其视为错误情况,因为它不是错误,所以它是正常的并且是预期的。
try {
… code as before …
}
catch (EOFException e) {
// end of input, nothing to do here
}
catch (IOException | ClassNotFoundException e) {
System.out.println("Error: " + e);
}