对象的序列化与反序列化.ppt

对象的序列化与反序列化.ppt

ID:52308095

大小:226.51 KB

页数:41页

时间:2020-04-04

对象的序列化与反序列化.ppt_第1页
对象的序列化与反序列化.ppt_第2页
对象的序列化与反序列化.ppt_第3页
对象的序列化与反序列化.ppt_第4页
对象的序列化与反序列化.ppt_第5页
资源描述:

《对象的序列化与反序列化.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、对象的序列化与反序列化主要内容概述当两个进程进行远程通信时,彼此可以发送各种类型的数据,包括文本图片音频视频等,都会以二进制序列的形式在网络上传送.当两个java进程进行通信时,一个进程能否把一个java对象发送给另一个进程呢?答案是肯定的!概述如何才能做到呢1)发送方需要把这个java对象转换为字节序列,才能在网上传送2)接收方需要把字节序列再恢复为java对象.把java对象转换为字节序列的过程称为对象的序列化,.把字节序列恢复为java对象的过程称为对象的反序列化.序列化与反序列化对象序列化两种用

2、途把对象的字节序列永久的保存到硬盘上,通常存放在一个文件中.在网络上传送对象的字节序列.主机1主机2文件网络传输存储到文件9.1.jdk类库中的序列化API如何才能做到呢1)发送方需要把这个java对象转换为字节序列,才能在网上传送2)接收方需要把字节序列再恢复为java对象.把java对象转换为字节序列的过程称为对象的序列化,.把字节序列恢复为java对象的过程称为对象的反序列化.序列化与反序列化9.1jdk类库中的序列化APIjava.io.ObjectOutputStream:代表对象输出流它的writ

3、eObject(Objectobj)方法可对参数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中。Java.io.ObjectInputStream代表对象输入流,它的readObject()方法从一个源输入流中读取字节,再把它们反序列化成一个对象,并将其返回。9.1jdk类库中的序列化API哪些类可以被序列化呢?只有实现了Serializable或Externalizable接口的类的对象才能被序列化,否则ObjectOutputStream的writeObject(Objectobj)方法

4、会抛出IOException。实现了Serializable或Externalizable接口的类也称为可序列化类。Externalizable接口继承Serializable接口,实现Externalizable接口的类完全由自身来控制序列化的行为。而仅实现Serializable接口的类可以采用默认的序列化方式。Jdk的部分类如StringDate等都实现了Serializable接口9.1jdk类库中的序列化API假定一个Customer类,它的对象需要序列化。可以有以下三种方式进行如果custome

5、r类仅仅实现了Serializable接口的类,那么会按照以下方式进行序列化和反序列化:ObjectOutputStream采用默认的序列化方式,对Customer对象的非transient的实例变量进行序列化。ObjectInputStream采用默认的反序列化方式,对customer对象的非transient的实例变量进行反序列化。9.1jdk类库中的序列化API2.如果customer类仅仅实现了Serializable接口,并且还定义了readObject(ObjectInputStreamin)和w

6、riteObject(ObjectOutputStreamout),那么会按照以下方式进行序列化和反序列化:ObjectOutputStream会调用Customer对象的writeObject(ObjectOutputStreamout)方法进行序列化。ObjectInputStream会调用Customer对象的readObject(ObjectInputStreamin)方法进行反序列化。9.1jdk类库中的序列化API3.如果customer类实现了Externalizable接口,那么Custome

7、r类必须实现readExternal(ObjectInputin)和writeExternal(ObjectOutputout)方法,那么会按照以下方式进行序列化和反序列化:ObjectOutputStream会调用Customer对象的writeExternal(ObjectOutputout)方法进行序列化。ObjectInputStream会调用Customer对象的readExternal(ObjectInputin)方法进行反序列化。9.1jdk类库中的序列化API类框图9.1jdk类库中的序列化步

8、骤创建一个对象输出流,它可以包装一个其他类型的目标输出流,如文件输出流:ObjectOutputStreamout=newObjectOutputStream(newfileOutputStream(“D:\objectfile.obj”));9.1jdk类库中的序列化步骤通过对象输出流的writeObject()方法写对象,如:Out.writeObject(“hello”);Out.write

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。