實現Serializable的class表明object可以被儲存。
被儲存的時候實際是儲存class裡的instance variable,這樣在deserialization的時候可以恢復object。
但是這些instance variable的class也需要是implement Serializable的,這樣它才可以被儲存;如果無法序列化,可以填加Transient關鍵字。
重要的code部分:
FileOutputStream file = new FileOutputStream("pond.ser");
ObjectOutputStream os = new ObjectOutputStream(file);
os.writeObject(new Pond());
Pond pond=(Pond)os.readObject();
FileOutputStream類屬於Connection stream, 它無法讀寫Object,這需要Chain stream(例如ObjectOutputStream)來完成。
所以,Serialization的過程是Object->ObjectOutputStream->FileOutputStream->File,Deserialization的過程反之。