【问题标题】:Java ObjectInputStream refill: StreamCorruptedException in stead of EOFExceptionJava ObjectInputStream 重新填充:StreamCorruptedException 代替 EOFException
【发布时间】:2013-10-15 15:47:03
【问题描述】:

我想知道,为什么refill() 在数据块中间发现意外的EOF 时会抛出StreamCorrruptedException? (ObjectInputStream.java:2538)

如果它抛出 EOFException 会更好吗?或者在这种情况下是否有其他理由抛出 StreamCorrruptedException

【问题讨论】:

    标签: java objectinputstream eofexception


    【解决方案1】:

    到达格式良好的流的末端和到达中间对象流的末端是有区别的。如果我正在读取包含未知数量对象的流,我可以继续调用readObject() 直到收到 EOFException,并且我知道我已经成功读取了所有内容。如果readObject() 在读取对象的过程中遇到同样的异常,我不会知道最后一个对象已损坏。

    【讨论】:

    • 谢谢,我想到了一些类似的东西,但后来我认为也有可能读取了错误类型的对象。这将是一个错误,但流并没有真正损坏。
    猜你喜欢
    • 2020-05-13
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多