對象序列化機制對于需要將對象的狀態保存到文件中,而后能夠通過讀入對象狀態來重新構造對象,恢復程序狀態,或者使用套接字在網絡上傳送對象的程序來說,是很有用的。通過讓類實現java.io.Serializable 接口可以將類序列化。這個接口是一個制造者(marker)接口。也就是說,對于要實現它的類來說,該接口不需要實現任何方法。它主要用來通知Java虛擬機(JVM)需要將一個對象序列化。
也叫串行化,對象的域轉化為緊湊的2進制形式,是對象持久化的方法之一。《實現類的序列化--例子將Vector對象壓入標準流》出處 CN-JAVA原創:jackliuVector對象是一個很靈活的java數據結構,在實際編程中,有時需要我們將一個Vector對象傳遞給另一個Java程序并保持Vector的數據結構狀態,這時,我們可以將需要傳遞的對象實現java.io.Serializable接口,序列化這個類,由于序列化本身就是允許一個對象在虛擬機之間傳送(或者經過一段空間,如在RMI中;或者經過一段時間,比如數據流被保存到一個文件中)。 關于類的序列化請查閱相關資料,本篇不在敘述,下面使用一個簡單的程序說明如何把一個Vector對象序列化并放到一個流中(為了測試方便,這里放到一個文件流中,如果換成一個套接字就可以把對象發送給遠程請求者)
程序1:把一個Vector對象存儲到一個testvector.obj文件里(模擬server socket處理)
編譯程序1,運行后,在當前目錄生成一個testvector.obj文件,這個文件里存放了TestVector類的數據
程序2:從testvector.obj文件里獲取TestVector對象(模擬socke客戶端)
編譯程序2,運行后,讀取testvector.obj文件,根據內容構建出原始的TestVector類。
posted on 2005-11-09 09:52 bluesky 閱讀(793) 評論(0) 編輯 收藏 所屬分類: 基礎知識