若通过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...

面试题 相关文章推荐
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
Sep 08 面试题
如何将整数int转换成字串String
Mar 21 面试题
什么是TCP/IP
Jul 27 面试题
你对IPv6了解程度
Feb 09 面试题
如何选择使用结构还是类
May 30 面试题
非功能性需求都包括哪些方面
Oct 29 面试题
启动一个线程是用run()还是start()
Dec 25 面试题
为什么Runtime.exec(“ls”)没有任何输出?
Oct 03 面试题
如何防止同一个帐户被多人同时登录
Aug 01 面试题
建龙钢铁面试总结
Apr 15 面试题
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
Oct 13 面试题
JAVA软件工程师测试题
Jul 25 面试题
线程问题: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 swoole process的使用方法
2017/08/26 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
js关闭子窗体刷新父窗体实现方法
2012/12/04 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
2012/12/15 Javascript
asm.js使用示例代码
2013/11/28 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
js实现图片漂浮效果的方法
2015/03/02 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
对javascript继承的理解
2016/10/11 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
2016/12/20 Javascript
微信小程序 定位到当前城市实现实例代码
2017/02/23 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
独特的python循环语句
2016/11/20 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
python 重命名轴索引的方法
2018/11/10 Python
python全栈知识点总结
2019/07/01 Python
详解python中的数据类型和控制流
2019/08/08 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
python Opencv计算图像相似度过程解析
2019/12/03 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
详解CSS3:overflow属性
2020/11/17 HTML / CSS
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
西班牙在线宠物商店:zooplus.es
2017/02/24 全球购物
班级道德讲堂实施方案
2014/02/24 职场文书
职工代表大会主持词
2014/04/01 职场文书
软件项目开发计划书
2014/05/01 职场文书
十佳好少年事迹材料
2014/08/21 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
个人工作决心书
2015/09/22 职场文书