posts - 241,  comments - 116,  trackbacks - 0
          1. Overview
            Java中的序列化就是將Java對象的狀態(tài)轉(zhuǎn)化為字節(jié)序列,以便存儲和傳輸?shù)臋C(jī)制,在未來的某個時間,可以通過字節(jié)序列重新構(gòu)造對象。把Java對象轉(zhuǎn) 換為字節(jié)序列的過程稱為對象的序列化。把字節(jié)序列恢復(fù)為Java對象的過程稱為對象的反序列化。這一切都?xì)w功于java.io包下的 ObjectInputStream和ObjectOutputStream這兩個類。

          2. Serializable
            要想實現(xiàn)序列化,類必須實現(xiàn)Serializable接口,這是一個標(biāo)記接口,沒有定義任何方法。如果一個類實現(xiàn)了Serializable接口,那么一旦這個類發(fā)布,“改變這個類的實現(xiàn)”的靈活性將大大降低。以下是一個序列化的小例子:
          class Message implements Serializable{

              private static final long serialVersionUID = 1L;
              
              private String id;
              
              private String content;
              
              public Message(String id, String content){
                  this.id = id;
                  this.content = content;
              }

              public String getId() {
                  return id;
              }

              public void setId(String id) {
                  this.id = id;
              }

              public String getContent() {
                  return content;
              }

              public void setContent(String content) {
                  this.content = content;
              }
              
              public String toString(){
                  return "id = " + id + " content = " + content;
              }
          }

          public class Test{
              
              public static void main(String[] args) {
                  serialize();
                  deserialize();
              }
              
              private static void serialize(){
                  Message message = new Message("1", "serializable test");
                  try {
                      ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("Message"));
                      oos.writeObject(message);
                      oos.close();
                  } catch (FileNotFoundException e) {
                      e.printStackTrace();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
                  System.out.println("over");
              }
              
              private static void deserialize(){
                  try {商賬追收
                      ObjectInputStream ois = new ObjectInputStream(new FileInputStream("Message"));
                      Message message = (Message)ois.readObject();
                      System.out.println(message.toString());
                  } catch (FileNotFoundException e) {
                      e.printStackTrace();
                  } catch (IOException e) {
                      e.printStackTrace();
                  } catch (ClassNotFoundException e) {
                      e.printStackTrace();
                  }
              }
              
          }
          posted on 2011-06-02 11:38 墻頭草 閱讀(235) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          人人游戲網(wǎng) 軟件開發(fā)網(wǎng) 貨運專家
          主站蜘蛛池模板: 叙永县| 涪陵区| 绩溪县| 丹凤县| 疏勒县| 罗江县| 嘉荫县| 定襄县| 昌平区| 民乐县| 澄迈县| 马公市| 嵊州市| 洛浦县| 金寨县| 许昌县| 长乐市| 利川市| 崇左市| 郑州市| 惠东县| 开封县| 临西县| 晋中市| 克拉玛依市| 高台县| 利津县| 嫩江县| 夏河县| 伊川县| 罗平县| 乐安县| 张家川| 南宁市| 望奎县| 荥阳市| 澎湖县| 绥中县| 南丰县| 武鸣县| 红安县|