EOFexception в Java при чтении objectinputstream

Я хочу прочитать несколько объектов (мой собственный класс Term), которые я выводил в файл.dat, но я всегда получаю исключение nullPointException или EOFException.

ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(masterFile));
        Object o = null;
        while(( o = inputStream.readObject()) != null){
            Term t = (Term)o;
            System.out.println("I found a term");
        }

1 ответ

Решение

Смотрите Javadoc. readObject() не возвращает ноль в EOF. Это бросает EOFException. Единственный способ вернуть ноль - это если вы написали ноль на другом конце, и это не обязательно является хорошей причиной для завершения цикла чтения.

Короче говоря, ваш код неверен.

Примечание: инициализация 'o' является избыточной.

NB (2) Код, который вы отправили, не может бросить NullPointerException, если masterFile нулевой. Это серьезный доклад или просто предположение?

Другие вопросы по тегам