Java ObjectInputStream重新填充:StreamCorruptedException代替EOFEException 我想知道,当代码块在数据块中间发现一个意想不到的EOF时,为什么再填充()/代码>抛出一个 SturrrRraceTraceExp>?(ObjectInputStream.java:2538)

Java ObjectInputStream重新填充:StreamCorruptedException代替EOFEException 我想知道,当代码块在数据块中间发现一个意想不到的EOF时,为什么再填充()/代码>抛出一个 SturrrRraceTraceExp>?(ObjectInputStream.java:2538),java,objectinputstream,eofexception,Java,Objectinputstream,Eofexception,如果它抛出一个EOFEException,或者在这种情况下抛出一个StreamCorruptedException有不同的原因,不是更好吗?到达格式良好的流的末端和到达流中间对象的末端是有区别的。如果我正在读取对象数量未知的流,我可以一直调用readObject(),直到得到EOFEException,我知道我已经成功读取了所有内容。如果我在读取一个对象的过程中遇到了同样的异常,我就不会知道最后一个对象已经损坏。谢谢,我想了一些类似的事情,但是我想也有可能读取了错误类型的对象。这将是一个bug,

如果它抛出一个
EOFEException
,或者在这种情况下抛出一个
StreamCorruptedException
有不同的原因,不是更好吗?

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

谢谢,我想了一些类似的事情,但是我想也有可能读取了错误类型的对象。这将是一个bug,但是流并没有真正损坏。