java中关于对象序列化和反序列化的问题!
每次newObjectOutputStream和newObjectIntputStream的时候总是不知道什么时候关闭流。是不是每写入/读出一个对象时就要打开/关闭一次,...
每次new ObjectOutputStream和new ObjectIntputStream的时候总是不知道什么时候关闭流。是不是每写入/读出一个对象时就要打开/关闭一次,或者可不可以只打开一次流,然后一个个对象写进去完之后再关闭?
展开
展开全部
这项技术主要应用于RMI(对象作为参数远程传递及返回)和JavaBeans中。
Java中还提供了XMLEncoder和XMDecoder类来将JavaBeans对象序列化到XML文件,但是此种方法有诸多不便对Java类有很多限制(要满足get/set方法等等,否则可能丢失该属性值)。一个很强大的开源工具XStream,也能够将对象保存到一个XML文件,并能从中恢复而且没有那么多限制。将XML作为一种进行对象传递的公共数据格式实现跨平台的进程通信。序列化和反序列化机制的强大在于能够自动处理序列化对象之间的复杂关系(对象之间的相互引用,形成了复杂的对象网,因此要保证这种关系准确无误的存储起来。)。通过反序列化获取对象的方式可以达到深度克隆对象一样的效果,当然在性能上肯定有较大损失。
满意请采纳。
满意请采纳。
追问
看清楚问题
展开全部
一般是读写完都要关闭的,但是读写极其频繁可以不关闭,下次直接拿来用,类似spring 的单例模式,对象在内存中!
更多追问追答
追问
一次读写一个对象,用循环来实现,你是这个意思吗?那我一次读写多个对象会不会有什么不同
追答
流对象一次只能处理一个的啊,不然数据不传掉啊,多个文件的话可以用多线程实现,简单点可以用线程池来实现,设置一个池子默认是几个对象,最大是几个,这样就不会资源浪费了,效率也高!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询