网站大量收购独家精品文档,联系QQ:2885784924

《Java高级程序设计》课件——学习情境5 Java序列化机制.pptx

《Java高级程序设计》课件——学习情境5 Java序列化机制.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

;一、应用场景

二、Java泛型的概念

三、Java对象实现序列化的步骤

四、Java实现反序列化的步骤;3;序列化常应用于以下场景

(1)永久性保存对象,保存对象的字节序列到本地文件或者数据库中;

(2)通过序列化以字节流的形式使对象在网络中进行传递和接收;

(3)通过序列化在进程间传递对象。

;二、Java序列化;Java序列化的几种方式;Java对象序列化机制;java.io.Serializable接口

java.io.Externalizable接口

ObjectOutput接口

ObjectInput接口

ObjectOutputStream类

ObjectInputStream类;Serializable接口,表示一个类的可序列化性由实现Serializable接口的类启用。未实现此接口的类的任何状态都不会序列化或反序列化。序列化接口没有方法或字段,仅用于标识可序列化的语义。;ObjectOutputStream类,代表对象输出流,它的writeObject(Objectobj)方法可对参数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中。

ObjectInputStream类,代表对象输入流,它的readObject()方法从一个源输入流中读取字节序列,再把它们反序列化为一个Java对象,并将其返回。;定义一个类,并实现Serializable或Externalizable接口。实现Serializable接口只要让Java类实现Serializable接口即可,无需实现任何方法。

使用ObjectOutputStream的writeObject(Objectobj)方法和ObjectInputStream的readObject()方法,对序列化的Java对象进行读写为字节输出流和输入流。;三、Java对象实现序列化的步骤;Employeeemployee=newEmployee();;Filefile=newFile(“物理文件”);;第四步,创建文件输出流;第五步,创建对象输出流,负责将对象写入字节流;第六步,通过对象输出流写入对象;第七步,关闭流;四、Java实现反序列化的步骤;Employeeemployee=newEmployee();;第三步,创建逻辑文件

Filefile=newFile(“物理文件”);//构造函数

第四步,创建文件输入流

FileInputStreamfis=newFileInputStream(file);;第五步,创建对象输出流,负责将对象写入字节流

ObjectInputStreamiis=newObjectInputStream(fis);

第六步,通过对象输出流读出对象并处理该对象

employee=iis.readObject(employee);

System.out.println(employee);;第七步,关闭流

iis.close();

fis.close();

;小结;;一、任务描述

二、任务分析、设计

三、任务实施

四、运行结果;27;二、任务分析、设计;其类图如图5-1所示。;三、任务实施;publicclassAddressimplementsSerializable{

privatestaticfinallongserialVersionUID=4983187287403615604L;

};实现Serializable接口非常简单,只要让Java类实现Serializable接口即可,无需实现任何方法。

一个类一旦实现了Serializable接口,那么该类的对象就是可序列化的。;第二步,创建员工类Employee;Employee实现了Serializable接口,那么该类的对象就是可序列化的。

该类引用了Address地址对象,地址类也是可序列化的。;第三步创建测试类;第四步新建员工对象;第五步,将对象序列化后写入文件;首先指定物理文件到逻辑文件

Filefile=newFile(d:\\employee23.dat);

然后创建文件输出流到逻辑文件

FileOutputStreamfos=newFileOutputStream(file);

再创建对象输出流到文件输出流

ObjectOutputStreamoos=newObjectOutputStream(fos);

最后通过对象输出流完成写操作

oos.writeObject(employee);;oos.flush();

oos.close();

fos.close();;2反序列化对象从磁盘上读出;首先,创建反序列化测试类;第一步从

您可能关注的文档

文档评论(0)

青柠职教 + 关注
实名认证
服务提供商

从业10年,专注职业教育专业建设,实训室建设等。

1亿VIP精品文档

相关文档