Java中的序列化再解

          序列化是把一個對象的狀態寫入一個字節流的過程,它執行RMI,RMI允許一臺機器上的JAVA對象調用不同機器上的JAVA對象方法,對象可以作為參數提供給那個遠程方法,發送機序列化該對象并傳送它,接收機執行反序列化。
          序列化和反序列化的關系圖表可形成包含循環引用的順序圖表。這是整個序列化的總體思想。
          而Serializable接口屬于支持序列化的一個接口,只有一個實現它的對象可以被序列化工具存儲和回復,Serializable接口沒有定義任何成員,只用來表示一個累可以被序列化,若該類可以序列化,那么它的所有子類都可以。
          下面是關于序列化的一個實例:
          程序名稱:SerializationDemo.java
          程序主題:實現對象的序列化和反序列化
          程序說明:該程序由實例化一個MyClass類的對象開始,該對象有三個實例變量,類型分別為String、int、double,是希望存儲和恢復的信息。




          import?java.io.*;

          public?class?SerializationDemo{
          ????????public?static?void?main(String?args[]){

          //Object?serialization
          try{
          MyClass?object1=new?MyClass("Hello",-7,2.7e10);
          System.out.println("object1:"+object1);
          FileOutputStream?fos=new?FileOutputStream("serial");
          ObjectOutputStream?oos=new?ObjectOutputStream(fos);
          oos.writeObject(object1);
          oos.flush();
          oos.close();
          }
          catch(Exception?e){
          System.out.println("Exception?during?serialization:"+e);
          System.exit(0);
          }

          //Object?deserialization
          try{
          MyClass?object2;
          FileInputStream?fis=new?FileInputStream("serial");
          ObjectInputStream?ois=new?ObjectInputStream(fis);
          object2=(MyClass)ois.readObject();
          ois.close();
          System.out.println("object2:"+object2);
          }
          catch(Exception?e){
          System.out.println("Exception?during?deserialization:"+e);
          System.exit(0);
          }
          }
          }

          class?MyClass?implements?Serializable{
          String?s;
          int?i;
          double?d;
          public?MyClass(String?s,int?i,double?d){
          this.s=s;
          this.i=i;
          this.d=d;
          }
          public?String?toString(){
          return?"s="+s+";i="+i+";d="+d;
          }
          }


          程序運行結果:object1和object2的實例變量是一樣的,輸出如下:
          object1:s=Hello;i=-7;d=2.7E10
          
          object2:s=Hello;i=-7;d=2.7E10

          posted on 2006-11-22 20:16 Timothy 閱讀(268) 評論(0)  編輯  收藏 所屬分類: JAVA大本營

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          公告

          語義Web : 網絡就是計算機,軟件就是服務!

          常用鏈接

          留言簿(4)

          隨筆檔案(20)

          文章分類(25)

          文章檔案(25)

          新聞分類(4)

          新聞檔案(4)

          相冊

          收藏夾(27)

          個人主頁

          網絡博客

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 华亭县| 三江| 西吉县| 青岛市| 虎林市| 图木舒克市| 丰都县| 隆化县| 胶南市| 长武县| 手游| 临清市| 钦州市| 元谋县| 江孜县| 长武县| 广东省| 五峰| 景谷| 丹凤县| 彭州市| 汤阴县| 诏安县| 运城市| 小金县| 建宁县| 嫩江县| 同心县| 上犹县| 宁强县| 钟山县| 南和县| 塔城市| 苍梧县| 伽师县| 收藏| 盐源县| 共和县| 和田市| 辉南县| 芜湖市|