首页 > 图灵资讯 > 技术篇>正文
java序列化反序列化的类型有哪些?
2024-04-15 13:28:25
java序列化提供以下类型的序列化:1. 基本数据类型的序列化;2. 对象序列化,要求类实现java.io.serializable接口;3. 要求对象实现java的外部化和反序列化.io.externalizable接口。在实战中,对象信息可以直接存储和读取。
Java 序列化类型
Java 序列化是将对象状态保存到持久存储器或通过网络传输的过程。Java 提供以下类型的序列化:
1. 基本数据类型序列化
基本数据类型(如 int、long、double)可直接序列化。
// 基本数据类型序列化 int num = 100; OutputStream out = new FileOutputStream("num.ser"); ObjectOutputStream oos = new ObjectOutputStream(out); oos.writeObject(num); oos.close();
登录后复制
2. 对象序列化
要实现对象的序列化,类需要实现 java.io.Serializable
接口。
// 对象序列化 class Person implements Serializable { private String name; private int age; // ... } Person person = new Person(); OutputStream out = new FileOutputStream("person.ser"); ObjectOutputStream oos = new ObjectOutputStream(out); oos.writeObject(person); oos.close();
登录后复制
3. 外部化和反序列化
允许自定义序列化和反序列化的过程外部化。对象需要实现 java.io.Externalizable
接口。
// 外部化 public void writeExternal(ObjectOutput out) { out.writeObject(name); out.writeInt(age); } // 反序列化 public void readExternal(ObjectInput in) { this.name = (String) in.readObject(); this.age = in.readInt(); }
登录后复制
实战案例
案例:存储和读取用户信息
// 存储用户信息 UserInfo user = new UserInfo(); OutputStream out = new FileOutputStream("user.ser"); ObjectOutputStream oos = new ObjectOutputStream(out); oos.writeObject(user); oos.close(); // 阅读用户信息 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("user.ser")); UserInfo user2 = (UserInfo) ois.readObject(); ois.close();
登录后复制
以上是java序列化反序列化的类型有哪些?详情请关注图灵教育其他相关文章!