序列化和反序列化Serializable-2
来源:互联网 发布:免费下载淘宝旺旺 编辑:程序博客网 时间:2024/06/16 04:55
见:http://www.cnblogs.com/huhx/p/serializable.html
简要说明
一、 持久化的简单介绍:
“持久化”意味着对象的“生存时间”并不取决于程序是否正在执行——它存在或“生存”于程序的每一次调用之间。通过序列化一个对象,将其写入磁盘,以后在程序再次调用时重新恢复那个对象,就能圆满实现一种“持久”效果。
二、 语言里增加了对象序列化的概念后,可提供对两种主要特性的支持:
- 远程方法调用(RMI)使本来存在于其他机器的对象可以表现出好象就在本地机器上的行为。将消息发给远程对象时,需要通过对象序列化来传输参数和返回值。
- 使用一个Java Bean 时,它的状态信息通常在设计期间配置好。程序启动以后,这种状态信息必须保存下来,以便程序启动以后恢复;具体工作由对象序列化完成。
三、 Serializable的一些说明:
- 对象的序列化处理非常简单,只需对象实现了Serializable 接口即可(该接口仅是一个标记,没有方法)
- 序列化的对象包括基本数据类型,所有集合类以及其他许多东西,还有Class 对象
- 对象序列化不仅保存了对象的“全景图”,而且能追踪对象内包含的所有句柄并保存那些对象;接着又能对每个对象内包含的句柄进行追踪
- 使用transient关键字修饰的的变量,在序列化对象的过程中,该属性不会被序列化。
四、 序列化的步骤:
- 首先要创建某些OutputStream对象:OutputStream outputStream = new FileOutputStream("output.txt")
- 将其封装到ObjectOutputStream对象内:ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
- 此后只需调用writeObject()即可完成对象的序列化,并将其发送给OutputStream:objectOutputStream.writeObject(Object);
- 最后不要忘记关闭资源:objectOutputStream.close(), outputStream .close();
五、 反序列化的步骤:
- 首先要创建某些OutputStream对象:InputStream inputStream= new FileInputStream("output.txt")
- 将其封装到ObjectInputStream对象内:ObjectInputStream objectInputStream= new ObjectInputStream(inputStream);
- 此后只需调用writeObject()即可完成对象的反序列化:objectInputStream.readObject();
- 最后不要忘记关闭资源:objectInputStream.close(),inputStream.close();
代码实例
详见另一文章:序列化和反序列化Serializable阅读全文
0 0
- Serializable,序列化和反序列化
- Serializable序列化和反序列化
- Serializable 序列化和反序列化
- Serializable序列化和反序列化 .
- 序列化和反序列化Serializable
- 序列化和反序列化Serializable-2
- 序列化和反序列化C# [Serializable] 与[Serializable()]
- java序列化(Serializable)的作用和反序列化
- java序列化(Serializable)的作用和反序列化
- java序列化(Serializable)的作用和反序列化
- java序列化(Serializable)的作用和反序列化
- java Serializable和Externalizable序列化反序列化详解
- java序列化(Serializable)的作用和反序列化
- java序列化(Serializable)的作用和反序列化
- java序列化(Serializable)的作用和反序列化
- java序列化(Serializable)的作用和反序列化
- java序列化(Serializable)的作用和反序列化
- java序列化(Serializable)的作用和反序列化
- Git回滚到历史节点(SourceTree篇)
- VS2015静态库与动态库的使用
- python 字典的问题
- 网页前端代码存档
- 服务器安装之--nmon
- 序列化和反序列化Serializable-2
- Android开发能用上的技术
- BZOJ 1385: [Baltic2000]Division expression
- Tyvj4876:骰子游戏 ((FFT/NTT)+倍增+DP)
- Gradle配置记录
- 协议
- 【安全牛学习笔记】手动漏洞挖掘-SQL注入XSS-简介、跨站脚本检测和常见的攻击利用手段
- Nginx安装与部署
- Java中对XML格式数据的四种解析方式,代码示例解析