java中序列化Serializable怎么實(shí)現(xiàn)

小億
94
2023-09-14 19:12:31
欄目: 編程語言

要實(shí)現(xiàn)Java中的對(duì)象序列化,需要按照以下步驟進(jìn)行:

  1. 在需要進(jìn)行序列化的類上實(shí)現(xiàn)Serializable接口。Serializable接口是一個(gè)標(biāo)記接口,不包含任何方法,只是用來標(biāo)記該類可以被序列化。
public class MyClass implements Serializable {
// 類的內(nèi)容
}
  1. 創(chuàng)建一個(gè)ObjectOutputStream對(duì)象來將對(duì)象序列化為字節(jié)流。
MyClass obj = new MyClass();
try {
FileOutputStream fileOut = new FileOutputStream("obj.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(obj);
out.close();
fileOut.close();
} catch (IOException i) {
i.printStackTrace();
}
  1. 創(chuàng)建一個(gè)ObjectInputStream對(duì)象來從字節(jié)流中反序列化對(duì)象。
MyClass obj = null;
try {
FileInputStream fileIn = new FileInputStream("obj.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
obj = (MyClass) in.readObject();
in.close();
fileIn.close();
} catch (IOException i) {
i.printStackTrace();
} catch (ClassNotFoundException c) {
c.printStackTrace();
}

以上就是實(shí)現(xiàn)Java中序列化的基本步驟。需要注意的是,被序列化的類的成員變量也必須是可序列化的,否則會(huì)拋出NotSerializableException異常。如果某個(gè)成員變量不希望被序列化,可以使用transient關(guān)鍵字標(biāo)記。

0