趣文网 > 作文大全

用非常硬核的JAVA序列化手段实现对象流的持久化保存

2020-12-02 04:05:01
相关推荐

背景

在OOP(面向对象编程)中处处是对象,我们当然希望可以有一种数据格式来存储这种对象的集合,以实现持久化。比如部门类所形成的部门对象集合,员工类所形成的员工对象集合,甚至是这样一个类所形成的对象:公司中有多个部门,每个部门有多个员工,我们希望将这样一个对象以文件的方式实现持久化保存。

对象流的概念

为实现对象的持久化保存,我们需要引入Java语言的对象序列化(object serialization)机制,这种机制可以将任何对象输出到流中:比如

对象流实例

引入一张组织结构图

定义组织架构图的类

公司:代表了组织架构的外在存在;公司是由部门和职员组成的一个完整实体。部门:代表了组织架构中的运作单位;部门按类型不同可以分为不同的业务部门。职员:代表了组织架构中的最小单位;职员按职位不同存在于不同的业务部门。

类的完整结构

用对象流保存组织架构的对象信息

有了类及构造函数完成对象的初始化过程,我们就具备了建立整个组织架构的能力,接下来我们完整地建立一个公司的组织架构:

核心代码

通过对象流的方式建立一个company.dat文件将公司对象写入文件将公司对象中的部门列表集合写入文件遍历部门列表,将每个部门下的职员列表集合写入文件

生成的文件如下:

二进制信息:

用对象流读取文件并输出

核心代码

通过对象流的方式获取company.dat文件读取对象信息

输出如下:

总结

在本文中,我们使用序列化将对象集合保存到磁盘文件中,并按照它们被存储的样子获取它们,我们学习到了如下信息:

ObjectOutputStream(OutputStream out) 创建一个ObjectOutputStream使得你可以将对象写出到指定的OutputStream。void writeObject(Object obj) 写出指定的对象到ObjectOutputStream,这个方法将存储指定对象的类、类的签名以及这个类及其超类中所有非静态和非瞬时的域的值。ObjectInputStream(InputStream in) 创建一个ObjectInputStream用于从指定的InputStream中读回对象信息。Object readObject()从ObjectInputStream中读入一个对象。特别是,这个方法会读回对象的类、类的签名以及这个类及其超类中所有非静态和非瞬时的域的值。它执行的反序列化允许恢复多个对象引用。想了解更多精彩内容,快来关注计算机java编程

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

作文亲情类 作文 初心 爱上阅读作文 19年作文 作文提纲范例大全13篇 中考的作文 激烈的足球比赛作文 冬天里的故事作文 教师节英语作文初中 写我的爸爸的作文 黄姚古镇作文 观察的作文200字 运动会作文儿 相信美好作文 我喜欢吃鱼作文 我被妈妈感动了作文 含泪的微笑作文400字 风景作文600字初中 温暖作文400字五年级 生活需要作文500字 口语交际作文100字 写一篇水果作文 550字作文大全 大自然的奇妙作文300字 四年级作文评语大全 作文某某我想对你说 运动会200米作文 珍爱时间作文 看菊展作文 勇往直前作文600字