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

面试题 相关文章推荐
大整数数相乘的问题
Jul 22 面试题
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
Aug 15 面试题
.net面试题
Dec 22 面试题
什么是Assembly(程序集)
Sep 14 面试题
程序员机试试题汇总
Mar 07 面试题
.NET初级开发工程师面试题
Apr 18 面试题
逻辑链路控制协议
Oct 01 面试题
C#公司笔试题
Mar 28 面试题
linux系统都有哪些运行级别
Apr 15 面试题
linux面试题参考答案(8)
Aug 11 面试题
MIS软件工程师的面试题
Apr 22 面试题
Java servlet面试题
Mar 04 面试题
线程问题: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人民币金额数字转中文大写的函数代码
2013/02/27 PHP
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
2013/04/01 Javascript
javascript-表格排序(降序/反序)实现介绍(附图)
2013/05/30 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
python中from module import * 的一个坑
2014/07/20 Python
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
python中如何使用朴素贝叶斯算法
2017/04/06 Python
Python paramiko模块的使用示例
2018/04/11 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
NumPy 数学函数及代数运算的实现代码
2018/07/18 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
python实现简单飞行棋
2020/02/06 Python
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
如何写出高性能的JSP和Servlet
2013/01/22 面试题
解释一下Windows的消息机制
2014/01/30 面试题
某公司C#程序员面试题笔试题
2014/05/26 面试题
英文简历中的自荐信范文
2013/12/14 职场文书
活动总结报告格式
2014/05/09 职场文书
八项规定对照检查材料
2014/08/31 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
WebRTC记录音视频流(web技术分享)
2022/02/24 Javascript
MongoDB数据库之添删改查
2022/04/26 MongoDB