EOFexception в Java при чтении objectinputstream - PullRequest
1 голос
/ 22 февраля 2010

Я хочу прочитать несколько объектов (мой собственный класс 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 Ответ

6 голосов
/ 22 февраля 2010

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

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

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

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

...