eofexception和objectinputstream

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

我读过其他类似的问题,但没什么帮助。所以我在一个文件中有一些序列化的内容,我试图读取它并在控制台上打印它,内容被很好地打印出来,但是在最后,它显示了一个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); 
        }
mdfafbf1

mdfafbf11#

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

try {
   … code as before … 
} 
catch (EOFException e) {
   // end of input, nothing to do here
}
catch (IOException | ClassNotFoundException e) {
    System.out.println("Error: " + e); 
}

相关问题