
java.io.StreamCorruptedException: invalid stream header: 0AACED00
FileOutputStream.正如我在上面的评论中提到的那样,这是由于附加到您造成的
ObjectOutputStream,至少在没有特殊措施的情况下,您无法附加到由编写的流。保持文件
和 在
ObjectOutputStream打开状态,直到你写你想写的对象,然后将其关闭,然后从它反序列化。
注意:我也提到过
while ((object = in.readObect()) != null)
不是有效的对象读取循环。
readObject()在流的末尾不返回null:throws
EOFException。
null可以在流中的任何地方发生,只要您编写一个。循环的正确形式是:
try{ for (;;) { Object object = in.readObject(); // ... }}catch (EOFException exc){ // end of stream}// other catch blocks ...注意2:
oos.writeObject(object + "n");
应该只是
oos.writeObject(object);
否则,您将隐式调用
toString()并毫无意义地追加行终止符,因此的结果
readObject()将是String而不是原始对象。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)