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
нулевой. Это серьезный доклад или просто предположение?