2013-04-14 2 views
0

Есть ли способ чтения объектов из файла с помощью ObjectInputStream. Примеры, которые я видел, похоже, полагаются на то, что это исключение поймано, чтобы закончить чтение. Хотя это, возможно, работает, это не похоже на чистое решение, поскольку в исключении не должно произойти, если в коде не было ошибок.Чтение нескольких объектов из файла

Example 1

+0

Если вы знаете количество объектов в файле, тогда напишите код, который использует эту информацию. Если файл имеет неизвестное количество объектов, то подход «Исключение» является правильным. Вы могли бы написать эту информацию в первом объекте в файле ... –

+0

@ bmorris591 Вам все равно придется иметь дело с EOFException, если первый объект не был там, или счет был неправильным, например, если процесс записи didn ' t удалось записать все объекты, на которые он предназначался. – EJP

+0

@ EJP да, конечно, но это будет исключительный случай. Я думаю, что OP возражает против использования 'Exception' в качестве оператора потока управления. –

ответ

0

EOFException выбрасывается методом readObject(), чтобы указать конец потока. Ergo вы должны поймать его, чтобы обнаружить конец потока. QED. Не обращайте внимания на полицию исключений.

+0

очень скучно, но, к сожалению, единственный способ, который я предполагаю:/ – starcorn

+0

Я не могу понять этот комментарий. Что такое «скучно» о том, чтобы поймать исключение? – EJP

+0

Поймать исключение не скучно. Я имел в виду, что я должен поймать исключение, когда оно достигло конца файла. – starcorn

Смежные вопросы