在前面幾節(jié),我們?cè)趯?duì)象保存到文件時(shí),使用的是DataOutputStream,從文件讀入對(duì)象時(shí),使用的是DataInputStream, 使用它們,需要逐個(gè)處理對(duì)象中的每個(gè)字段,我們提到,這種方式比較啰嗦,Java中有一種更為簡(jiǎn)單的機(jī)制,那就是序列化。
簡(jiǎn)單來(lái)說(shuō),序列化就是將對(duì)象轉(zhuǎn)化為字節(jié)流,反序列化就是將字節(jié)流轉(zhuǎn)化為對(duì)象。在Java中,具體如何來(lái)使用呢?它是如何實(shí)現(xiàn)的?有什么優(yōu)缺點(diǎn)?本節(jié)就來(lái)探討這些問(wèn)題,我們先從它的基本用法談起。
基本用法
Serializable
要讓一個(gè)類支持序列化,只需要讓這個(gè)類實(shí)現(xiàn)接口java.io.Serializable,Serializable沒(méi)有定義任何方法,只是一個(gè)標(biāo)記接口。比如,對(duì)于57節(jié)提到的Student類,為支持序列化,可改為:
pu