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序列化反序列化的型別有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!