當前位置: 妍妍網 > 碼農

今日程式碼大賞 | Java 序列化

2024-04-30碼農

在如今的 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

在程式碼小抄可以看到更多優質程式碼,也歡迎大家積極分享,可能會獲得我們官方的小禮品 🎁~

往期推薦