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)

          個人主頁

          網絡博客

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 蒙城县| 汕头市| 克什克腾旗| 手机| 岳普湖县| 聂拉木县| 和顺县| 陕西省| 郸城县| 固阳县| 德格县| 庆阳市| 柯坪县| 达拉特旗| 秭归县| 卢氏县| 登封市| 奉节县| 渝北区| 武陟县| 青田县| 普兰店市| 闸北区| 佛学| 库尔勒市| 泸定县| 孟州市| 寿宁县| 呼伦贝尔市| 巴马| 清流县| 泗洪县| 西藏| 江北区| 富阳市| 贞丰县| 嘉义县| 灵丘县| 武陟县| 靖州| 海林市|