文章 - 353,收藏 - , 评论 - 570, trackbacks - 3

导航

公告


我们热爱沉浸在计算机中的感觉,凭着十指的跳跃穿行于数字的时空,我们觉得自己成了一名无畏的探险家。

文章

收藏

    相册

      友情链接

      存档


      正在读取评论……

      Java1.1增加了一种有趣的特性,名为 object serialization。它面向那些实现了Serializable接口的对象,可以将它们转换成系列字节,并可以在以后完全恢复原来的样子。这一过程也可以通过网络进行。

      为了序列化一个对象,要创建某些OutputStream(如FileOutputStream),然后将其封装到ObjectOutputStream。然后调用writeObject即可。反之依然。它不仅保留的对象的全景,而且能追踪对象内包含的所有引用,并保留。序列化过程不会调用Constructor。可以用声名transient来关闭某个属性的序列化。

      import java.io.*;
      import java.util.*;

      public class TestSerial {
         public static void main(String[] args) {
            MyObject inObj = new MyObject();
            inObj.setStr("Serialized");
           
            try {
               System.out.println("-StrA: "+inObj.getStrA());
               System.out.println("-StrB: "+inObj.getStrB());

               ObjectOutputStream out =
                  new ObjectOutputStream(
                     new FileOutputStream("serial.out"));
               out.writeObject(inObj);
           
               ObjectInputStream in =
                  new ObjectInputStream(
                     new FileInputStream("serial.out"));
               MyObject outObj = (MyObject) in.readObject();

               System.out.println("=StrA: "+outObj.getStrA());
               System.out.println("=StrB: "+outObj.getStrB());
            }
            catch(Exception e) {
            }

         }
      }

      class MyObject implements Serializable{

         public void setStr(String str) {
            this.strA = str;
            this.strB = str;
         }

         public String getStrA() {
            return strA;
         }

         public String getStrB() {
            return strB;
         }

         private String strA = "";
         transient private String strB = "";
      }



      Trackback: http://tb.donews.net/TrackBack.aspx?PostId=33473


      [点击此处收藏本文]  发表于2004年06月24日 10:19 PM




      正在读取评论……

      发表评论

      大名
      网址
      验证码
      评论