Java Serializable

时间:2023-03-09 06:32:04
Java Serializable

实现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的过程反之。