序列化与反序列化(SerDe)
本章将简单讲解序列化与反序列化的相关小知识。
一、何为序列化与反序列化
序列化:将对象的状态转换为字节流的过程。以便将其存储在内存中、数据库中,或通过网络传输。
反序列化:将字节流转换回对象的过程。将先前序列化的字节流还原为原始对象的状态。反序列化是序列化的逆过程。

二、目的
序列化:主要用于数据持久化和网络通信。当需要将对象传输到另一个系统、保存到磁盘,或者通过网络发送时,需要将对象序列化为字节流。
反序列化:用于从存储介质或网络接收的字节流中重新构建对象,以便在程序中使用。
三、为什么需要序列化与反序列化【实际运用】
跨平台通信: 序列化使得在不同平台、不同语言之间传递对象成为可能,因为字节流是平台无关的。
数据持久化: 序列化允许将对象的状态保存到文件或数据库中,以便在程序重新启动时能够还原对象。
分布式系统: 在分布式系统中,对象可能需要在网络上传输,序列化和反序列化是实现这一需求的关键。
四、JAVA代码的实现
序列化:
ObjectOutputStream 是 Java 中用于将对象序列化成字节流的类,通常用于将对象持久化保存到文件或通过网络传输。


这里通过 FileOutputStream 将字节流写入download/lovedRole目录下的sanjiu文件。
oos.writeObject的作用是将内容写进输入流中。

oos.flush() 是作为保险起见,保证清空。

完整代码:

反序列化:
ObjectInputStream 是 Java 中用于从输入流中读取对象的类。它通常与 ObjectOutputStream 配合使用,
用于实现对象的序列化和反序列化。


ois.readObject() 用于读取内容。

完整代码:


浙公网安备 33010602011771号