91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java序列化的實現方法

發布時間:2020-05-09 13:51:00 來源:億速云 閱讀:154 作者:小新 欄目:編程語言

這篇文章主要為大家詳細介紹了java序列化的實現方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

序列化的實現:

將需要被序列化的類實現Serializable接口,該接口沒有需要實現的方法,implements Serializable只是為了標注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數為obj的對象寫出(即保存其狀態),要恢復的話則用輸入流。

java序列化的實現方法

對象序列化

java.io.ObjectOutputStream代表對象輸出流,它的writeObject(Object obj)方法可對參數指定的obj對象進行序列化,把得到的字節序列寫到一個目標輸出流中。只有實現了SerializableExternalizable接口的類的對象才能被序列化。

java.io.ObjectInputStream代表對象輸入流,它的readObject()方法從一個源輸入流中讀取字節序列,再把它們反序列化為一個對象,并將其返回。

代碼示例:

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

public class ObjectSaver {
    public static void main(String[] args) throws Exception {
        /*其中的  D:\\objectFile.obj 表示存放序列化對象的文件*/

        //序列化對象
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("D:\\objectFile.obj"));
        Customer customer = new Customer("王麻子", 24);    
        out.writeObject("你好!");    //寫入字面值常量
        out.writeObject(new Date());    //寫入匿名Date對象
        out.writeObject(customer);    //寫入customer對象
        out.close();

        //反序列化對象
        ObjectInputStream in = new ObjectInputStream(new FileInputStream("D:\\objectFile.obj"));
        System.out.println("obj1 " + (String) in.readObject());    //讀取字面值常量
        System.out.println("obj2 " + (Date) in.readObject());    //讀取匿名Date對象
        Customer obj3 = (Customer) in.readObject();    //讀取customer對象
        System.out.println("obj3 " + obj3);
        in.close();
    }
}

class Customer implements Serializable {
    private String name;
    private int age;
    public Customer(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String toString() {
        return "name=" + name + ", age=" + age;
    }
}

執行結果:

java序列化的實現方法

說明:

1、讀取對象的順序與寫入時的順序要一致。

2、對象的默認序列化機制寫入的內容是:對象的類,類簽名,以及非瞬態和非靜態字段的值。

關于java序列化的實現方法就分享到這里了,希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇赉县| 吉木萨尔县| 永寿县| 美姑县| 城口县| 电白县| 深州市| 定边县| 资溪县| 麻江县| 涡阳县| 乐都县| 武宁县| 高陵县| 保德县| 平和县| 若尔盖县| 沂源县| 剑阁县| 两当县| 蛟河市| 朝阳市| 鲁山县| 通山县| 全州县| 沈丘县| 通许县| 福鼎市| 家居| 武威市| 龙山县| 锡林郭勒盟| 鸡东县| 斗六市| 上栗县| 永寿县| 广饶县| 金塔县| 富裕县| 蕲春县| 久治县|