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

面试题 相关文章推荐
Java面试题及答案
Sep 08 面试题
介绍一下Java中的Class类
Apr 10 面试题
求∏的近似值,直到最后一项的绝对值小于指定的数
Feb 12 面试题
CLR与IL分别是什么含义
Aug 23 面试题
PPP协议组成及简述协议协商的基本过程
May 28 面试题
3个CCIE对一个工程师的面试题
May 06 面试题
C#公司笔试题
Mar 28 面试题
西安当代医院管理研究院笔试题
Dec 11 面试题
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
Sep 07 面试题
比较一下entity bean和session bean
Dec 27 面试题
分别介绍一下Session Bean和Entity Bean
Mar 13 面试题
方正Java笔试题
Jul 03 面试题
线程问题: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调用Java对象的方法
2006/10/09 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
2017/03/14 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
react实现菜单权限控制的方法
2017/12/11 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
python实现线程池的方法
2015/06/30 Python
利用Python开发微信支付的注意事项
2016/08/19 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
python虚拟环境完美部署教程
2019/08/06 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
用python实现名片管理系统
2020/06/18 Python
一款基于css3和jquery实现的动画显示弹出层按钮教程
2015/01/04 HTML / CSS
美国著名的团购网站:Woot
2016/08/02 全球购物
Clarria化妆品官方网站:购买天然和有机化妆品系列
2018/04/08 全球购物
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
全球在线商店:BerryLook
2019/04/14 全球购物
证券期货行业个人的自我评价
2013/12/26 职场文书
投资协议书范本
2014/04/21 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书
Python Pandas解析读写 CSV 文件
2022/04/11 Python
mysql幻读详解实例以及解决办法
2022/06/16 MySQL