Избежание EOFException после чтения объектов из двоичного файла - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть бинарный файл с кучей 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());
        }
    }
}

Для его текущей цели (отладка и тестирование) работает как чудо, но возникнет ли у него какая-либо проблема, если она была в центре внимания программы? Любая головная боль, которую это может вызвать, или какой-то лучший способ сделать это?

...