要實現Java中的序列化,可以按照以下步驟進行:
Serializable
接口。這個接口是一個標記接口,不包含任何方法,只是用于標識該類可以被序列化。public class MyClass implements Serializable {
// class code here
}
ObjectOutputStream
類來實現。MyClass obj = new MyClass();
// 創建文件輸出流
FileOutputStream fileOut = new FileOutputStream("file.ser");
// 創建對象輸出流,將對象寫入文件輸出流
ObjectOutputStream out = new ObjectOutputStream(fileOut);
// 將對象寫入輸出流
out.writeObject(obj);
// 關閉輸出流
out.close();
fileOut.close();
ObjectInputStream
類來實現。// 創建文件輸入流
FileInputStream fileIn = new FileInputStream("file.ser");
// 創建對象輸入流,從文件輸入流中讀取對象
ObjectInputStream in = new ObjectInputStream(fileIn);
// 從輸入流中讀取對象
MyClass obj = (MyClass) in.readObject();
// 關閉輸入流
in.close();
fileIn.close();
需要注意的是,被序列化的類的所有非靜態成員變量都會被序列化,但是靜態成員變量不會被序列化。如果有某些成員變量不希望被序列化,可以使用transient
關鍵字進行修飾。
此外,還可以自定義序列化和反序列化過程,通過實現writeObject()
和readObject()
方法來控制序列化和反序列化的過程。