首頁  >  文章  >  Java  >  如何進行java序列化與反序列化?

如何進行java序列化與反序列化?

王林
王林原創
2024-04-15 10:33:02329瀏覽

Java 序列化和反序列化是一種持久化機制,用於將物件儲存為位元組序列。序列化使用 java.io.Serializable 介面和 ObjectOutputStream,將物件寫入檔案或網路。反序列化使用 ObjectInputStream,從檔案或網路中讀取位元組序列並重建原始物件。序列化和反序列化在 Java 中用於持久化對象,例如持久化使用者物件以便日後重新載入。

如何進行java序列化與反序列化?

Java 序列化與反序列化的深入指南

簡介

序列化是指將物件以位元組形式儲存在檔案中或網路中,以便以後可以進行反序列化並重建原始物件。反序列化與之相反,它將位元組形式的資料轉換為原始物件。

序列化

在 Java 中,可以使用 java.io.Serializable 介面對物件進行序列化。要將物件序列化到檔案中,可以使用ObjectOutputStream

// 创建一个对象要序列化的 FileOutputStream
FileOutputStream fileOut = new FileOutputStream("object.ser");

// 使用 ObjectOutputStream 将对象写入文件中
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(myObject);

// 关闭 ObjectOutputStream
out.close();

反序列化

##要從檔案中反序列化對象,可以使用

ObjectInputStream

// 创建一个 FileInputStream 以读取序列化的文件
FileInputStream fileIn = new FileInputStream("object.ser");

// 使用 ObjectInputStream 从文件中读取对象
ObjectInputStream in = new ObjectInputStream(fileIn);
MyObject myDeserializedObject = (MyObject) in.readObject();

// 关闭 ObjectInputStream
in.close();

實戰案例:持久化使用者對象

假設我們有一個

User 對象,我們需要將其儲存在文件中以進行持久化處理。我們可以這樣做:

// 创建一个 User 对象
User user = new User("John", "Doe");

// 将 User 对象序列化到文件中
FileOutputStream fileOut = new FileOutputStream("user.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(user);
out.close();

// 从文件中反序列化 User 对象
FileInputStream fileIn = new FileInputStream("user.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
User deserializedUser = (User) in.readObject();
in.close();

// 确认反序列化的 User 对象
System.out.println(deserializedUser.getName() + " " + deserializedUser.getLastName()); // 打印:John Doe

結論

Java 序列化是用來物件持久化的強大機制。透過

java.io.Serializable 介面和 ObjectOutputStreamObjectInputStream 類,我們可以輕鬆地序列化和反序列化物件。

以上是如何進行java序列化與反序列化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn