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


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

Tags in this post...

面试题 相关文章推荐
PHP面试题及答案一
Jun 18 面试题
如何减少垃圾回收让内存更加有效使用
Oct 18 面试题
关键字final的用法
Oct 02 面试题
一套Java笔试题
Aug 20 面试题
c/c++某大公司的两道笔试题
Feb 02 面试题
C和C++经典笔试题附答案解析
Aug 18 面试题
数组越界问题
Oct 21 面试题
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
Sep 17 面试题
Java如何支持I18N?
Oct 31 面试题
Java模拟试题
Nov 10 面试题
UNIX特点都有哪些
Apr 05 面试题
线程问题:wait()方法是定义在哪个类里面
Jul 07 #面试题
如果重写了对象的equals()方法,需要考虑什么
Nov 02 #面试题
为什么Runtime.exec(“ls”)没有任何输出?
Oct 03 #面试题
如何从一个文件档案的尾端新增记录
Dec 02 #面试题
构造方法和其他方法的区别
Apr 26 #面试题
Java程序开发中如何应用线程
Mar 03 #面试题
怎样在 Applet 中建立自己的菜单(MenuBar/Menu)?
Jun 20 #面试题
You might like
php,ajax实现分页
2008/03/27 PHP
使用php记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
解决FLASH需要点击激活的代码
2006/12/20 Javascript
JavaScript 的继承
2011/10/01 Javascript
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
自己封装的javascript事件队列函数版
2014/06/12 Javascript
JavaScript代码复用模式详解
2014/11/07 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
Vue通过provide inject实现组件通信
2020/09/03 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
Python线程中对join方法的运用的教程
2015/04/09 Python
Python实现股市信息下载的方法
2015/06/15 Python
python实现两个文件合并功能
2018/04/01 Python
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
python实现浪漫的烟花秀
2019/01/30 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
AmazeUI 平滑滚动效果的示例代码
2020/08/20 HTML / CSS
简述数组与指针的区别
2014/01/02 面试题
医学院学生的自我评价分享
2013/11/19 职场文书
安全生产目标责任书
2014/04/14 职场文书
社区护士演讲稿
2014/08/27 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
运动会宣传稿50字
2015/07/23 职场文书
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫