0

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

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

4

1 回答 1

1

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

于 2013-10-15T15:55:31.983 回答