【发布时间】:2013-04-06 23:22:25
【问题描述】:
是否有使用ObjectInputStream 从文件中读取对象的正确方法。我看到的示例似乎依赖于捕获异常来结束阅读。虽然它可能有效,但它似乎不是一个干净的解决方案,因为除非代码中有错误,否则不应真正发生异常。
【问题讨论】:
-
如果您知道文件中对象的数量,然后编写使用该信息的代码。如果文件有未知数量的对象,那么
Exception方法是正确的。您可能会将此信息写入文件中的第一个对象... -
@bmorris591 如果第一个对象不存在,或者计数错误,您仍然需要处理 EOFException,例如,如果写入过程没有成功写入它打算写入的所有对象到。
-
@EJP 是的,当然,但那会是个例外。我认为 OP 反对使用
Exception作为控制流语句。 -
@bmorris 实际上,OP 似乎认为“除非代码中存在 [某些] 错误,否则不应发生异常”,这将您提到的“原则”引向其合乎逻辑的、荒谬的结论.
-
@EJP 点。我仍然认为在这种情况下处理读取数据减去
Exceptions 并在输入出现问题时处理它们是有意义的。但你是绝对正确的,例外处理“快乐流程”的移动,并不表示编码错误。
标签: java serialization deserialization java-io eofexception