首页 > 图灵资讯 > 技术篇>正文
java序列化反序列化的过程是什么?
2024-04-17 16:02:20
java 序列化和反序列化涉及以下步骤:将实现 serializable 接口类写入流中(序列化)。从流中读取物体(反序列化)。
Java 序列化和反序列化的过程序列化
- 写一个实现了
Serializable
接口的类。 - 创建一个
ObjectOutputStream
对象,并将其与文件或字节流相关联。 - 使用
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(); } } }
登录后复制
反序列化
- 创建一个
ObjectInputStream
对象,并将其与文件或字节流相关联。 - 使用
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序列化反序列化的过程是什么?详情请关注图灵教育其他相关文章!