若通过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的笔试题
May 31 面试题
Java的接口和C++的虚类的相同和不同处
Mar 27 面试题
请描述一下”is a”关系和”has a”关系
Feb 03 面试题
Web Service面试题:如何搭建Axis2的开发环境
Jun 20 面试题
Kingsoft金山公司C/C++笔试题
May 10 面试题
亿阳信通股份有限公司C#笔试题
Dec 06 面试题
软件测试企业面试试卷
Jul 13 面试题
介绍一下EJB的分类及其各自的功能及应用
Aug 23 面试题
int和Integer有什么区别
May 25 面试题
Java中的类包括什么内容?设计时要注意哪些方面
May 23 面试题
与UNIX有关的几个名词
Sep 17 面试题
德尔福集团DELPHI的笔试题
Feb 22 面试题
线程问题: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中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
thinkphp浏览历史功能实现方法
2014/10/29 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
php生成固定长度纯数字编码的方法
2015/07/09 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
python之pexpect实现自动交互的例子
2019/07/25 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
Pytorch mask_select 函数的用法详解
2020/02/18 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
人力资源管理专业应届生求职信
2013/09/28 职场文书
中学生班主任评语
2014/01/30 职场文书
会展策划与管理专业求职信
2014/06/09 职场文书
护士工作心得体会
2016/01/25 职场文书