<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Cyh的博客

    Email:kissyan4916@163.com
    posts - 26, comments - 19, trackbacks - 0, articles - 220

    控制對象的序列化和反序列化

    Posted on 2009-05-24 22:44 啥都寫點 閱讀(236) 評論(0)  編輯  收藏 所屬分類: J2SE
    關鍵技術:
    • 當被序列化的對象實現了java.io.Externalizable接口時,就可以靈活地控制它的序列化和反序列化過程。java.io.Externalizable接口繼承了java.io.Serializable。
    • Externalizable接口定義了兩個接口:writeExternal方法在序列化時被調用,可以在該方法中控制序列化的內容;readExternal方法在反序列化時被調用,可以在該方法中控制反序列化的內容。

    package book.io;

    import java.io.Externalizable;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutput;
    import java.io.ObjectOutputStream;
    import java.util.Date;

    /**
     * 控制序列化就是有選擇的序列化對象,而不是把所有對象的一切內容進行序列化。
     * SerializeObject演示了使用transit關鍵字可以控制變量不被序列化。
     * 本程序將演示通過實現Externalizable接口控制對象的序列化和反序列化。
     
    */
    public class SerializeControl {
        
    /**
         * 內部類,用于測試控制對象的序列化和反序列化。
         * 被序列化的對象必須實現Externalizable接口,該接口有2個方法:
         * writeExternal方法、readExternal方法。
         * 當序列化對象的時候,writeExternal方法會自動執行,所有的對象寫入操作由該方法控制。
         * 反序列化對象的時候,readExternal方法會自動執行,如果想訪問writeExternal寫入的內容,
         * 也只能在該方法里編寫恢復對象的代碼。
         
    */
        
    static class MyClassControl implements Externalizable{
             
    int serialClassInt;
             
    int a=3, b=4;
             
    public MyClassControl(){
                 System.out.println(
    "MyClass constructor!");
                 
    this.serialClassInt = 9;
             }
             
             
    public void show(){
                 System.out.println(
    "serialClassInt: " + serialClassInt);
             }
            
    //當序列化對象的時候,該方法自動被調用
            public void writeExternal(ObjectOutput out) throws IOException{
                System.out.println(
    "run writeExternal");
                
    //可以在序列化時寫非自身的變量,
                Date d = new Date();
                out.writeObject(d);
                
    //只序列化serialClassInt變量,a、b兩個變量不被序列化
                out.writeInt(this.serialClassInt);        
            }
            
    // 當反序列化對象的時候, 該方法自動被調用
            public void readExternal(ObjectInput in) throws IOException,
                    ClassNotFoundException {
                System.out.println(
    "run readExternal");
                Date d 
    = (Date) in.readObject();
                System.out.println(d);
                
    this.serialClassInt = in.readInt();
            } 
        }
        
    /**
         * 序列化對象
         
    */
        
    public static void serializable(String fileName) throws Exception{
            ObjectOutputStream out 
    = new ObjectOutputStream(new FileOutputStream(fileName));
            MyClassControl my1 
    = new MyClassControl();
            out.writeObject(my1);
            out.close();        
        }
        
    /**
         * 反序列化
         
    */
        
    public static void deserializable(String fileName)throws Exception{
            ObjectInputStream in 
    = new ObjectInputStream(new FileInputStream(fileName));
            MyClassControl my2 
    = (MyClassControl)in.readObject();
            my2.show();
            in.close();
        }

        
    public static void main(String[] args) throws Exception{
            String fileName 
    = "c:/temp/MyClassControl.ser";
            SerializeControl.serializable(fileName);
            SerializeControl.deserializable(fileName);
        }
    }



                                                                                                           --    學海無涯
            

    主站蜘蛛池模板: 两个人的视频www免费| wwwxxx亚洲| 91成人免费观看在线观看| 亚洲国产成人精品无码久久久久久综合| 亚洲色欲啪啪久久WWW综合网| 国产卡一卡二卡三免费入口 | 国内精品乱码卡1卡2卡3免费| 亚洲精品乱码久久久久久下载| 2021在线观看视频精品免费| 亚洲成人高清在线观看| 91香蕉视频免费| 亚洲精品人成网线在线播放va| 成人爱做日本视频免费| 婷婷亚洲综合五月天小说在线| 亚洲精品黄色视频在线观看免费资源| 无码日韩人妻AV一区免费l| 国产亚洲AV夜间福利香蕉149| 97无码人妻福利免费公开在线视频| 精品亚洲成AV人在线观看| 免费无码又黄又爽又刺激| 亚洲jizzjizz少妇| 亚洲日韩在线中文字幕第一页 | 亚洲精品一卡2卡3卡三卡四卡| 无码一区二区三区AV免费| WWW亚洲色大成网络.COM| 亚洲一区二区三区乱码A| 午夜视频在线免费观看| 亚洲性色精品一区二区在线| 亚洲成年人啊啊aa在线观看| 全免费a级毛片免费看| 国产亚洲中文日本不卡二区| 免费大黄网站在线观| 日韩免费无码视频一区二区三区| 亚洲国产乱码最新视频| 亚洲人成电影网站国产精品| 99精品在线免费观看| 色视频在线观看免费| 亚洲精品日韩中文字幕久久久| 国产成人精品男人免费| 性xxxxx大片免费视频| 日本亚洲高清乱码中文在线观看|