版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026柔性屏智能手机生产工艺需求分析评估报告
- 2026中国食品饮料行业品牌价值分析及市场营销渠道整合研究
- 2026桥梁施工检测技术与设备市场深度调研及桥梁安全维护新方案建设方法研究报告
- 2026中国智能座舱触觉反馈模块响应速度与用户体验报告
- 2026Fast芯片组行业隐形冠军企业成长路径解密
- 2026专案经理面试题目及答案
- 2026年校园应急疏散演练课件
- 2026-2030中国TWS耳机行业发展状况及竞争格局分析研究报告
- 2026年医疗数据安全管理培训课件
- 公务员考试《申论》专项训练试卷(附答案)
- 创意DIY手工项目商业运营计划书
- 锚定教育强国目标做好普通高中“十五五”规划
- 工程造价专业数字化教学改革研究
- 2.4蛋白质是生命活动的主要承担者说课课件-高一上学期生物人教版必修1
- 单像素水下成像技术应用研究
- 2025初中数学新教材培训学习心得体会
- 康复知识培训课件
- 药品共线生产质量风险管理指南(官方2023版)
- 装饰装修工程竣工验收汇报材料
- 2025年中国医药工业经济运行报告
- 中国中医科学院西苑医院招聘笔试真题2023
评论
0/150
提交评论