Java的序列化和反序列化

发布于:2024-04-27 ⋅ 阅读:(23) ⋅ 点赞:(0)

序列化和反序列化的定义:

Java 序列化是一种将对象转换为字节流的过程,以便可以将对象保存到磁盘上,将其传输到网络上,或者将其存储在内存中,以后再进行反序列化,将字节流重新转换为对象。

序列化的实现:

序列化在 Java 中是通过实现 java.io.Serializable 接口来实现的,该接口没有任何方法,只是一个标记接口,用于标识类可以被序列化。

import java.io.Serializable;

public class MyClass implements Serializable {
    // 类的成员和方法
}

什么是序列化:

当你序列化对象时,就是把它包装成一个特殊文件,可以保存、传输或存储。

以ObjectOutputStream 类为例:

MyClass obj = new MyClass();

try {

    FileOutputStream fileOut = new FileOutputStream("object.ser");

    ObjectOutputStream out = new ObjectOutputStream(fileOut);

    out.writeObject(obj);

    out.close();

    fileOut.close();

} catch (IOException e) {

    e.printStackTrace();

}

什么是反序列化:

反序列化则是打开这个文件,读取序列化的数据,然后将其还原为对象,以便在程序中使用。

以ObjectOutputStream 类为例:

MyClass obj = null;

try {

    FileInputStream fileIn = new FileInputStream("object.ser");

    ObjectInputStream in = new ObjectInputStream(fileIn);

    obj = (MyClass) in.readObject();

    in.close();

    fileIn.close();

} catch (IOException e) {

    e.printStackTrace();

} catch (ClassNotFoundException e) {

    e.printStackTrace();

}

作用:

序列化是一种用于保存、传输和还原对象的方法,它使得对象可以在不同的计算机之间移动和共享,这对于分布式系统、数据存储和跨平台通信非常有用。