eofexception和objectinputstream

ccrfmcuu  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(450)

我读过其他类似的问题,但没什么帮助。所以我在一个文件中有一些序列化的内容,我试图读取它并在控制台上打印它,内容被很好地打印出来,但是在最后,它显示了一个eofexception。有没有办法修复我的代码来避免这个异常?

  1. try {
  2. File file = new File("EnrolledStudentsSerial.txt");
  3. FileInputStream fi = new FileInputStream(file);
  4. ObjectInputStream input = new ObjectInputStream(fi);
  5. while(true) {
  6. System.out.println(input.readObject());
  7. }
  8. }
  9. catch (IOException | ClassNotFoundException e) {
  10. System.out.println("Error: " + e);
  11. }
mdfafbf1

mdfafbf11#

我认为你不想“避免”这个例外。
您需要知道何时到达输入的末尾,而eofexception就是告诉您已经到达输入的末尾的内容。
相反,您希望停止将其视为错误条件,因为它不是错误,它是正常的和预期的。

  1. try {
  2. code as before
  3. }
  4. catch (EOFException e) {
  5. // end of input, nothing to do here
  6. }
  7. catch (IOException | ClassNotFoundException e) {
  8. System.out.println("Error: " + e);
  9. }

相关问题