Java對象序列化可以通過實現java.io.Serializable
接口來實現。Serializable
接口是一個標記接口,沒有任何需要實現的方法,只是用來告訴Java虛擬機,該類可以被序列化。
要實現Java對象的序列化,可以按照以下步驟進行操作:
Serializable
接口:public class MyClass implements Serializable {
// 類的成員和方法
}
MyClass obj = new MyClass();
obj.setSomeData("data");
try {
FileOutputStream fileOut = new FileOutputStream("file.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(obj);
out.close();
fileOut.close();
System.out.println("Serialized data is saved in file.ser");
} catch (IOException e) {
e.printStackTrace();
}
try {
FileInputStream fileIn = new FileInputStream("file.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
MyClass obj = (MyClass) in.readObject();
in.close();
fileIn.close();
// 對反序列化后的對象進行操作
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
請注意,要進行序列化的類及其所有的成員變量都必須是可序列化的。如果類中包含了不能序列化的對象,則需要將這些對象標記為transient
關鍵字,以避免序列化錯誤。