序列化与反序列化处理|学习笔记

简介: 快速学习 序列化与反序列化处理

开发者学堂课程【Java 高级编程序列化与反序列化处理】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/20/detail/346


序列化与反序列化处理


有了序列化的支持类之后如果想要实现序列化与反序列化的操作则可以利用以下两个类完成:

类名称

序列化:ObjectOutputStream

反序列化:ObjectInputStream

类定义

public class ObjectOutputStream

extends OutputStream

Implements ObjectCutputObject StreamConstants

public class ObjectInputStream

extends InputStream

implements ObjectInput ObjectStreamConstants

构造方法

Public ObjectOutputStream(OutputStream out) throws IOException

public ObjectInputStream(InputStream in) ithrows IOException

操作方法

public final void writeObject(Object obji)

throws IOException

public final Object readObject()

throws IOException ClassNotFoundException

范例:实现序列化与反序列化图片69.png

第一个操作过程:如图输入

private static final File SAVE_FILE = new File("D:"+ File.separator +"mldn.person")

Objectoutputstream oos = new objectoutputstream(new Eileoutputstream(SAVE_FILE)

图片70.png

public static void saveobject(Object obj) throws lexception { Objectoutputstream oos = new ObjectOutputStream(new FileOutputStream(SAVE_FILE));

oos.writeObject(obj);//序列化

oos.close();

public static Object loadObject() throws Exception {

ObjectInputStream ois = new ObjectInputStream(new FileInputStream(SAVE_FILE));

Object obj = ois.readObject();//反序列化

ois.close();

return obj ;

image.png

代码完成后,观察后,图中位置跟上saveObject(new Person(“小喷涕”,78))

图片73.png

执行后有个文件

图片74.png

打开得

图片75.png

打开代码继续输入System.out.printIn(LoadObject());

图片76.png

再次执行得

图片77.png

这就是反序列化。

在 Java 中的对象序列化与反序列化必须使用内部提供的对象操作流,因为这里面牵扯到二进制数据的格式,所以不能够自义处理。另外,如果要想实现一组对象的序列化,则可以使用对象数组完成。

在很多的实际项目开发过程之中,开发者很少能够见到 ObjectOutputStream、 ObjectInput Stream 直接操作,因为会有一些容器帮助开发者自动实现

相关文章
|
1月前
|
存储 安全 Java
Java一分钟之-Java序列化与反序列化
【5月更文挑战第14天】Java序列化用于将对象转换为字节流,便于存储和网络传输。实现`Serializable`接口使类可被序列化,但可能引发隐私泄露、版本兼容性和性能问题。要避免这些问题,可使用`transient`关键字、控制`serialVersionUID`及考虑使用安全的序列化库。示例代码展示了如何序列化和反序列化对象,强调了循环引用和未实现`Serializable`的错误。理解并妥善处理这些要点对优化代码至关重要。
29 1
|
2天前
|
存储 JSON 数据库
Django REST framework关联序列化器详解:掌握复杂关系的序列化与反序列化艺术
Django REST framework关联序列化器详解:掌握复杂关系的序列化与反序列化艺术
|
4天前
|
Java 数据库 开发者
Java中的序列化与反序列化
Java中的序列化与反序列化
|
10天前
|
网络协议 Java API
【Java】序列化和反序列化
【Java】序列化和反序列化
16 4
|
15天前
|
Java 数据安全/隐私保护 Android开发
Java基础21-读懂Java序列化和反序列化(二)
Java基础21-读懂Java序列化和反序列化(二)
29 1
|
15天前
|
XML 存储 Java
Java基础21-读懂Java序列化和反序列化(一)
Java基础21-读懂Java序列化和反序列化(一)
15 1
|
20天前
|
JSON 缓存 Java
【Java基础】 序列化和反序列化
Java中的序列化(Serialization)和反序列化(Deserialization)是将对象和字节流之间进 行相互转换的过程。这两个过程用于保存对象的状态并能够在需要时恢复这些状态。
13 1
|
22小时前
|
存储 缓存 Java
杭州 序列化与反序列化 (借鉴-侵-删)(序列化ID问题)
杭州 序列化与反序列化 (借鉴-侵-删)(序列化ID问题)
4 0
|
1天前
|
XML 机器学习/深度学习 存储
技术心得:对象的序列化存入数据库,与反序列化
技术心得:对象的序列化存入数据库,与反序列化
|
2天前
|
存储 JSON 缓存
Java中的对象序列化与反序列化:实现与应用
Java中的对象序列化与反序列化:实现与应用