Java ObjectInputStream refill:StreamCorruptedException而不是EOFException

时间:2013-10-15 15:47:04

标签: java objectinputstream eofexception

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

如果它抛出EOFException或者在这种情况下抛出StreamCorrruptedException会有不同的理由会不会更好?

1 个答案:

答案 0 :(得分:1)

到达格式良好的流的末尾到达流 mid-object 的末尾之间有区别。如果我正在读取具有未知数量的对象的流,我可以继续调用readObject()直到获得EOFException,并且我知道我已经成功读取了所有内容。如果readObject()是读取对象的一部分,我得到相同的异常,我不知道最后一个对象是否已损坏。