【问题标题】:Reading multiple objects from file从文件中读取多个对象
【发布时间】:2013-04-06 23:22:25
【问题描述】:

是否有使用ObjectInputStream 从文件中读取对象的正确方法。我看到的示例似乎依赖于捕获异常来结束阅读。虽然它可能有效,但它似乎不是一个干净的解决方案,因为除非代码中有错误,否则不应真正发生异常。

Example 1

【问题讨论】:

  • 如果您知道文件中对象的数量,然后编写使用该信息的代码。如果文件有未知数量的对象,那么Exception 方法是正确的。您可能会将此信息写入文件中的第一个对象...
  • @bmorris591 如果第一个对象不存在,或者计数错误,您仍然需要处理 EOFException,例如,如果写入过程没有成功写入它打算写入的所有对象到。
  • @EJP 是的,当然,但那是个例外。我认为 OP 反对使用 Exception 作为控制流语句。
  • @bmorris 实际上,OP 似乎认为“除非代码中存在 [某些] 错误,否则不应发生异常”,这将您提到的“原则”引向其合乎逻辑的、荒谬的结论.
  • @EJP 点。我仍然认为在这种情况下处理读取数据减去Exceptions 并在输入出现问题时处理它们是有意义的。但你是绝对正确的,例外处理“快乐流程”的移动,并不表示编码错误。

标签: java serialization deserialization java-io eofexception


【解决方案1】:

EOFExceptionreadObject() 方法抛出以指示流结束。因此,您必须抓住它才能检测到流的结束。 QED。别介意例外警察。

【讨论】:

  • 很无聊,但遗憾的是我猜的唯一方法:/
  • 我无法理解这条评论。捕捉异常有什么“无聊”?
  • 捕捉异常并不枯燥。我指的是当它到达文件末尾时我必须捕获异常。
  • @starcorn 在文件末尾捕获异常也不乏味。如果这就是 API 设计人员确定您必须做的事情,那就是您必须做的事情。没有人真正关心你是否觉得无聊。
  • 如果这是您的意见。顺便说一句,冷静下来。我没有说人们应该关心它:P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-19
  • 2021-11-20
  • 1970-01-01
  • 2016-08-15
  • 2011-09-26
相关资源
最近更新 更多