在如今的 Java 開發中,實體類的序列化越來越重要了。它允許我們將物件的狀態資訊轉換為可以儲存或傳輸的格式。序列化是 物件跨平台通訊 和 持久化儲存 的橋梁。
序列化是指將物件的狀態資訊轉換為可以被儲存(如保存到檔案系統)或傳輸(如透過網路發送到另一台電腦)的格式的過程。在 Java 中,透過實作 java.io.Serializable 介面來使一個類的物件可以被序列化。
下面是使用 Java 實作序列化和反序列化的範例程式碼:
import java.io.*;
classUserimplementsSerializable {
privatestaticfinallongserialVersionUID = 1L;
private String name;
privateint age;
publicUser(String name, int age) {
this.name = name;
this.age = age;
}
// Getters and Setters
}
public classSerializationDemo {
publicstaticvoidmain(String[] args) throws IOException, classNotFoundException {
// 建立物件
Useruser = newUser("Alice", 30);
// 序列化:將物件寫入檔
try (ObjectOutputStreamout = newObjectOutputStream(newFileOutputStream("user.dat"))) {
out.writeObject(user);
System.out.println("物件已被序列化");
}
// 反序列化:從檔中讀取物件
try (ObjectInputStreamin = newObjectInputStream(newFileInputStream("user.dat"))) {
UserdeserializedUser = (User) in.readObject();
System.out.println("讀取物件: " + deserializedUser.name + ", " + deserializedUser.age);
}
}
}
在上述程式碼中,我們首先建立了一個實作了 Serializable 介面的 User 類,它有兩個內容:name 和 age 。然後,在 main 方法中,我們建立了一個 User 物件,並使用 ObjectOutputStream 將其序列化到一個名為 user.dat 的檔中。接著,我們使用 ObjectInputStream 將該物件從檔中反序列化,恢復為 Java 物件。
序列化是 Java 中處理物件狀態轉換的強大工具。理解並正確使用序列化對於開發人員來說非常重要。
今天的程式碼大賞就到這裏。希望透過這篇文章,你能夠對 Java 實作序列化有一個更深入的理解。
完整程式碼片段來源於程式碼小抄,歡迎點選進入小程式閱讀!
線上存取:https://www.codecopy.cn/post/ocb82b
在程式碼小抄可以看到更多優質程式碼,也歡迎大家積極分享,可能會獲得我們官方的小禮品 🎁~
往期推薦