从二进制文件读取对象后避免EOFException

时间:2018-11-03 18:58:48

标签: java serialization objectinputstream

我有一个带有一堆Student对象的二进制文件。在尝试弄清楚我是否正确编写它们的同时,在阅读了最后一个错误之后,我出现了EOFException,因此我最终获得了此解决方案。

void readBinaryFile() {

    List<Student> studentList = new ArrayList<Student>();

    try (FileInputStream fis = new FileInputStream("binaryFile.dat");
            ObjectInputStream is = new ObjectInputStream(fis);) {
        while (fis.available()>0) {
            Student student = (Student) is.readObject();
            if (student != null) {
                studentList.add(student);
            } 
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        for (Student student : studentList) {
            System.out.println("\nSTUDENT");
            System.out.println(student.toString());
        }
    }
}

就其当前目的(调试和测试)而言,它就像是一种魅力,但是如果它是程序的重点,会不会有任何问题?是否会引起头痛或采取更好的治疗方法?

0 个答案:

没有答案