java序列化反序列化的过程是什么?

发布时间:2024-04-17 16:02:20

java 序列化和反序列化涉及以下步骤:将实现 serializable 接口类写入流中(序列化)。从流中读取物体(反序列化)。

java序列化反序列化的过程是什么?

Java 序列化和反序列化的过程

序列化

  1. 写一个实现了 Serializable 接口的类。
  2. 创建一个 ObjectOutputStream 对象,并将其与文件或字节流相关联。
  3. 使用 ObjectOutputStream.writeObject() 该方法将对象写入流中。

示例代码:

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;

public class Employee implements Serializable {
    private String name;
    private int age;

    // 省略getter和setter的方法

    public static void main(String[] args) {
        Employee employee = new Employee("John", 30);
        
        try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("employee.txt"))) {
            out.writeObject(employee);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

登录后复制

反序列化

  1. 创建一个 ObjectInputStream 对象,并将其与文件或字节流相关联。
  2. 使用 ObjectInputStream.readObject() 读取对象的方法。

示例代码:

import java.io.FileInputStream;
import java.io.ObjectInputStream;

public class DeserializeEmployee {
    public static void main(String[] args) {
        try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("employee.txt"))) {
            Employee employee = (Employee) in.readObject();
            System.out.println(employee.getName() + ", " + employee.getAge());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

登录后复制

注意事项:

  • 只有实现了 Serializable 接口类别可以序列化。
  • 序列化和反序列化的顺序必须一致。
  • 序列化和反序列化之间不能改变类别的结构。
  • 序列化对象可能很慢,尤其是对于大型对象。

以上是java序列化反序列化的过程是什么?详情请关注图灵教育其他相关文章!

上一篇 Java网络编程如何整合外部库实现Web框架?
下一篇 返回列表

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题