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

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

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

    天空是藍色的

    做好軟件為中國 #gcc -c helloworld.c -o helloworld.o //編譯目標文件 #gcc helloworld.o -o helloworld //編譯成可執行exe #helloworld //運行exe
    數據加載中……
    Java對象序列化機制

    對象序列化機制對于需要將對象的狀態保存到文件中,而后能夠通過讀入對象狀態來重新構造對象,恢復程序狀態,或者使用套接字在網絡上傳送對象的程序來說,是很有用的。通過讓類實現java.io.Serializable 接口可以將類序列化。這個接口是一個制造者(marker)接口。也就是說,對于要實現它的類來說,該接口不需要實現任何方法。它主要用來通知Java虛擬機(JVM)需要將一個對象序列化。

    也叫串行化,對象的域轉化為緊湊的2進制形式,是對象持久化的方法之一。

    《實現類的序列化--例子將Vector對象壓入標準流》出處 CN-JAVA原創:jackliu

    Vector對象是一個很靈活的java數據結構,在實際編程中,有時需要我們將一個Vector對象傳遞給另一個Java程序并保持Vector的數據結構狀態,這時,我們可以將需要傳遞的對象實現java.io.Serializable接口,序列化這個類,由于序列化本身就是允許一個對象在虛擬機之間傳送(或者經過一段空間,如在RMI中;或者經過一段時間,比如數據流被保存到一個文件中)。 關于類的序列化請查閱相關資料,本篇不在敘述,下面使用一個簡單的程序說明如何把一個Vector對象序列化并放到一個流中(為了測試方便,這里放到一個文件流中,如果換成一個套接字就可以把對象發送給遠程請求者)

    程序1:把一個Vector對象存儲到一個testvector.obj文件里(模擬server socket處理)

     1import java.io.*;
     2import java.util.*;
     3
     4class TestVector implements java.io.Serializable{
     5        private Vector vect=new Vector();
     6        
     7        public void add(Object obj){
     8                this.vect.add(obj);
     9        }

    10        public void print(){
    11                System.out.println(this.vect);
    12        }

    13        public static void main(String[] args){
    14                try {
    15                        /* 將對象寫到一個文件里 */
    16                        FileOutputStream objfile = new FileOutputStream("testvector.obj");
    17                        /* 創建一個輸出流 */
    18                        ObjectOutputStream p = new ObjectOutputStream(objfile);
    19                        /* 創建一個TestVector對象 */
    20                        TestVector tv =new TestVector();
    21                        /*給Vector寫入幾String個對象*/
    22                        tv.add("One");
    23                        tv.add("Two");
    24                        tv.add("Three");
    25                        p.writeObject(tv); // 把tv寫入流
    26                        p.flush();
    27                        objfile.close();    // 關閉文件對象
    28                }
     catch (Exception e) {
    29                        e.printStackTrace();
    30                }

    31        }

    32}

    33

    編譯程序1,運行后,在當前目錄生成一個testvector.obj文件,這個文件里存放了TestVector類的數據


    程序2:從testvector.obj文件里獲取TestVector對象(模擬socke客戶端)

     1import java.io.*;
     2import java.util.*;
     3
     4class ReadVectorObj{
     5        public static void  main (String[] args){
     6                try {
     7                        /* 打開文件,讀取Vector 存放的對象數據 */
     8                        FileInputStream objfile = new FileInputStream("testvector.obj");
     9                        ObjectInputStream q = new ObjectInputStream(objfile);
    10                        /* 獲取對象原始數據 */
    11                        TestVector myvector = (TestVector)q.readObject();
    12                        myvector.print(); 
    13                }
     catch (Exception e) {
    14                        e.printStackTrace();   
    15                }

    16        }

    17}


    編譯程序2,運行后,讀取testvector.obj文件,根據內容構建出原始的TestVector類。

    posted on 2005-11-09 09:52 bluesky 閱讀(793) 評論(0)  編輯  收藏 所屬分類: 基礎知識

    主站蜘蛛池模板: 9久热这里只有精品免费| 免费精品视频在线| 3344免费播放观看视频| 亚洲AV成人无码久久精品老人| 岛国精品一区免费视频在线观看| 亚洲精品成人区在线观看| 免费精品视频在线| 久久影院亚洲一区| 青青操免费在线视频| 亚洲中文字幕无码一久久区| 一级毛片试看60分钟免费播放| 亚洲毛片不卡av在线播放一区| 久久国产美女免费观看精品 | 在线看片免费人成视频久网下载| 国产乱辈通伦影片在线播放亚洲| 丁香六月婷婷精品免费观看| 亚洲一区二区三区国产精品| 97无码人妻福利免费公开在线视频 | 999久久久免费精品播放| 亚洲酒色1314狠狠做| 成年女人18级毛片毛片免费| 国产精品亚洲片在线花蝴蝶| 在线亚洲午夜理论AV大片| 免费国产成人α片| 亚洲入口无毒网址你懂的| 国产成人免费a在线资源| sihu国产精品永久免费| 亚洲国产成人一区二区精品区 | 无人视频免费观看免费视频| 亚洲精品午夜国产VA久久成人| 蜜桃视频在线观看免费视频网站WWW| 亚洲一卡2卡4卡5卡6卡在线99| 日韩免费观看的一级毛片| 久久久WWW免费人成精品| 亚洲综合色一区二区三区小说| 日本免费一区二区三区最新vr| 国产一级婬片A视频免费观看| 亚洲四虎永久在线播放| 日本免费v片一二三区| a级毛片视频免费观看| 成人亚洲国产va天堂|