首页 > Java > java教程 > 正文

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

王林
发布: 2024-04-15 18:06:01
原创
1184 人浏览过

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序列化反序列化的过程是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!