JavaBean的序列化及輸入輸出流

JavaBean涉及的兩個重要類
    JavaBean對象和所有的對象一樣,就其本質來說是動態變化的,若想使JavaBean對象在網絡移動或把對象保存到永久介質中,必須把對象序列化(Serialization)。對象序列化把對象的特徵值按一定的順序線性化排列。人們經常看到“持久性”一詞與“序列化“聯繫在一起,持久性(Persistence)是指使對象在硬盤上永久保存,對象的持久性是通過對象序列化來實現。反之。由序列化的對象的特徵值重新構造該對象叫反序列化。一個對象從一個網絡結點傳送到另一個結點,對象在發送的結點上需序列化,在接收對象的結點上需反序列化。
    1. Serializable接口
    Java提供了支持對象序列化的類和接口在java.io包中,Serializable接口是訪問和運行持久性對象的最快的方式,若一個類對象要成爲序列化性對象,該對象類只需實現Serializable接口,就可以了。Serializable接口標識着一個對象是可序列化。在大多數情況下,要使一個類對象序列化,只需要簡單的在類聲明中加入“implements Serializable”就可以了。例如
        public class abc implements Serializable
         {//……}
    每一個JavaBean都應該是可序列化的,這就意味着,在大多數情況下需實現Serializable接口。下圖3-5說明了如何保存對象的標識和其特徵值信息。保存的對象是例3-1的JavaBeanExaml類的對象javaBeanExam1。

    2. ObjectInputStream和ObjectOutputStream類
java.io包中提供了幾個類,它們實現了對象輸入輸出接口,如ObjectInputStream和ObjectOutputStream類,下面我們舉例說明這兩個類如何對持久性對象進行操作的。
    例3-7 利用ObjectOutputStream將例4-1中定義的的JavaBeanExaml類的對象寫入到文件去。

    例3-8 將例3-7寫入的對象讀出來。這是序列化的逆過程。

    最後程序運行,輸出的結果是 5 ,這說明讀入的對象所保存的特徵值,的確在保存前設置的整數值 5。
    java的序列化機制爲把對象輸入輸出帶來方便。在上面的例子中,JavaBeanExaml對象不必知道如何將自己寫入一個文件中,只需要簡單的實現Serializable接口,Java就會將所有的JavaBeanExaml bean的對象特徵記錄下來。


發佈了10 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章