Java IO: 序列化与ObjectInputStream、ObjectOutputStream
轉(zhuǎn)載自??Java IO: 序列化與ObjectInputStream、ObjectOutputStream
作者:Jakob?Jenkov??譯者:?李璟(jlee381344197@gmail.com)
本小節(jié)會(huì)簡(jiǎn)要概括Java?IO中的序列化以及涉及到的流,主要包括ObjectInputStream和ObjectOutputStream。
Serializable
原文鏈接
如果你希望類(lèi)能夠序列化和反序列化,必須實(shí)現(xiàn)Serializable接口,就像所展示的ObjectInputStream和ObjectOutputStream例子一樣。
對(duì)象序列化本身就是一個(gè)主題。Java?IO系列教程主要關(guān)注流、reader和writer,所以我不會(huì)深入探討對(duì)象序列化的細(xì)節(jié)。并且,目前在網(wǎng)上已經(jīng)有很多文章探討了對(duì)象序列化,我將給出幾個(gè)深入分析的資料鏈接,不再贅述。鏈接如下:
http://java.sun.com/developer/technicalArticles/Programming/serialization/
ObjectInputStream
原文鏈接
ObjectInputStream能夠讓你從輸入流中讀取Java對(duì)象,而不需要每次讀取一個(gè)字節(jié)。你可以把InputStream包裝到ObjectInputStream中,然后就可以從中讀取對(duì)象了。代碼如下:
在這個(gè)例子中,你讀取的對(duì)象必須是MyClass的一個(gè)實(shí)例,并且必須事先通過(guò)ObjectOutputStream序列化到“object.data”文件中。(譯者注:ObjectInputStream和ObjectOutputStream還有許多read和write方法,比如readInt、writeLong等等,詳細(xì)信息請(qǐng)查看官方文檔)
在你序列化和反序列化一個(gè)對(duì)象之前,該對(duì)象的類(lèi)必須實(shí)現(xiàn)了java.io.Serializable接口。
ObjectOutputStream
原文鏈接
ObjectOutputStream能夠讓你把對(duì)象寫(xiě)入到輸出流中,而不需要每次寫(xiě)入一個(gè)字節(jié)。你可以把OutputStream包裝到ObjectOutputStream中,然后就可以把對(duì)象寫(xiě)入到該輸出流中了。代碼如下:
例子中序列化的對(duì)象object現(xiàn)在可以從ObjectInputStream中讀取了。
同樣,在你序列化和反序列化一個(gè)對(duì)象之前,該對(duì)象的類(lèi)必須實(shí)現(xiàn)了java.io.Serializable接口。
總結(jié)
以上是生活随笔為你收集整理的Java IO: 序列化与ObjectInputStream、ObjectOutputStream的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java IO: Reader和Writ
- 下一篇: 罗锅是什么意思 罗锅意思是什么