版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序 列恢复为Java对象的过程。 当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音 频、视频等,而这些数据都会以二进制序列的形式在网络上传送。那么当两个Java 进程进行通信时,实现进程间的对象传送,就需要Java序列化与反序列化了。换句 话说,一方面,发送方需要把这个Java对象转换为字节序列,然后在网络上传送; 另一方面,接收方需要从字节序列中恢复出Java对象。 什么情况下需要序列化 1. 当你想把的内存中的对象状态保存到一个文件中或者数据库中时候; 2.
2、当你想用套接字在网络上传送对象的时候; 3. 当你想通过RMI传输对象的时候; 序列化作用 实现了数据的持久化,通过序列化可以把数据永久地保存到硬盘上(通常存放在文 件里);利用序列化实现远程通信,即在网络上传送对象的字节序列。 JDK类库中序列化API java.io.ObjectOutputStreamjava.io.ObjectOutputStream:表示对象输出流:表示对象输出流 它的writeObject(Object obj)方法可以对参数指定的obj对象进行序列化,把得到 的字节序列写到一个目标输出流中。 java.io.ObjectInputStreamjava.io.Obj
3、ectInputStream:表示对象输入流:表示对象输入流 它的readObject()方法源输入流中读取字节序列,再把它们反序列化成为一个对象, 并将其返回。 实现Java对象序列化与反序列化的方法 假定一个Student类,它的对象需要序列化,可以有如下三种方法: 方法一:若Student类仅仅实现了SerializableSerializable接口接口,则可以按照以下方式进行序 列化和反序列化。ObjectOutputStream采用默认的序列化方式,对Student对象的非 transient的实例变量进行序列化。ObjcetInputStream采用默认的反序列化方式,对 Stu
4、dent对象的非transient的实例变量进行反序列化。 方法二:若Student类仅仅实现了Serializable接口,并且还定义了 readObject(ObjectInputStream in)和writeObject(ObjectOutputSteam out),则采用 以下方式进行序列化与反序列化。ObjectOutputStream调用Student对象的 writeObject(ObjectOutputStream out)的方法进行序列化。ObjectInputStream会调用 Student对象的readObject(ObjectInputStream in)的方法进行
5、反序列化。 方法三:若Student类实现了ExternalnalizableExternalnalizable接口接口,且Student类必须实现 readExternal(ObjectInput in)和writeExternal(ObjectOutput out)方法,则按照以 下方式进行序列化与反序列化。ObjectOutputStream调用Student对象的 writeExternal(ObjectOutput out)的方法进行序列化。ObjectInputStream会调用 Student对象的readExternal(ObjectInput in)的方法进行反序列化。 JD
6、K类库中序列化的步骤 步骤一:创建一个对象输出流。 它可以包装一个其它类型的目标输出流,如文件输出流:ObjectOutputStream out = new ObjectOutputStream(new fileOutputStream(“D:objectfile.obj”); 步骤二:通过对象输出流的writeObject()方法写对象: out.writeObject(“Hello”); out.writeObject(new Date(); JDK类库中反序列化的步骤 步骤一:创建一个对象输入流,它可以包装一个其它类型输入流,如文件输入流: ObjectInputStream in = new ObjectInputStream(new fileInputStream(“D:objectfile.obj”); 步骤二:通过对象输出流的readObject()方法读取对象: String obj1 = (String)in.readObject(); Date obj2 = (Date)in.readObject(); 总结 1)Java
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年湖南省岳阳市初中政治八年级期末下册自测模拟绝密预测题(附答案)
- 地下通道装修施工方案
- 景观木平台及木栈道施工方案
- 复发性口腔溃疡压力调节干预标准共识
- 胆道支架移位内镜复位操作流程标准共识
- P5压力容器操作人员考试真题试卷(全真模拟)
- 缺铁性贫血纠正后维持治疗方案共识
- 选矿工艺矿物重力分选实验数据解析试题及答案
- 石材大锯切割操作工安全规程
- 自身炎症性疾病基因筛查指征中国专家共识(2026版)
- 厂房彩钢拆除合同范本
- IEC31010-2019风险管理 风险评估技术(2024)(可编辑!)
- 屋檐上的小神兽课件
- 煤矿防灭火安全培训课件
- Unit 5 The weather and us 公开课一等奖创新教案(7个课时 含反思)
- 政府采购评审专家考试试题库及答案(完整版)
- 电子商标管理办法
- 脊柱骨折中医护理方案
- 患者风险评估管理制度
- 荷花淀复习课件
- 双级溢流阀的平衡活塞结构优化与动态稳定性研究
评论
0/150
提交评论