java面试题

当前位置: 面试问题网 > java面试题 > 若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedExcepti

若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedExcepti

使用缺省的serializetion的实现时,一个ObjectOutputStream的构造和一个ObjectInputStream的构造必须一一对应。ObjectOutputStream的构造函数会向输出流中写入一个标识头,而ObjectInputStream会首先读入这个标识头。因此,多次以追加方式向一个文件中写入object时,该文件将会包含多个标识头。所以用ObjectInputStream来deserialize这个ObjectOutputStream时,将产生StreamCorruptedException。
   一种解决方法是可以构造一个ObjectOutputStream的子类,并覆盖writeStreamHeader()方法。被覆盖后的writeStreamHeader()方法应判断是否为首次向文件中写入object?若是,则调用super.writeStreamHeader();若否,即以追加方式写入object时,则应调用ObjectOutputStream.reset()方法。

【若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedExcepti】相关文章

1. 若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedExcepti

2. 软件测试LoadRunner面试题:If you want to stop the execution of your script on error, how do you do that?

3. 软件测试LoadRunner面试题:What is correlation? Explain the difference between automatic correlation and manu

4. .TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)

5. 写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数

6. 什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议

7. error和exception有什么区别

8. String s = new String(“xyz”);创建了几个String Object?

9. 文件中有一组整数,要求排序后输出到另一个文件中

10. 简述你对Statement,PreparedStatement,CallableStatement的理解

本文来源:https://www.mianshiwenti.com/a12571.html

点击展开全部

《若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedExcepti》

将本文的Word文档下载到电脑,方便收藏和打印

推荐程度:

进入下载页面

﹝若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedExcepti﹞相关内容

其它栏目

也许您还喜欢