33. Java IO: ObjectOutputStream

想要查看此教程的目錄請點(diǎn)擊:Java IO教程目錄貼地址


ObjectOutputStream(java.io.ObjectOutputStream)可以從OutputStream寫出Java對象來代替原始的字節(jié)。用ObjectOutputStream來包裝OutputStream然后就可以向其中寫入對象。
Java ObjectOutputStream經(jīng)常會和Java ObjectInputStream一起使用。稍后會展示一個(gè)相關(guān)的例子。

ObjectOutputStream例子

下面是關(guān)于Java ObjectOutputStream的例子:

ObjectOutputStream objectOutputStream = 
    new ObjectOutputStream(new FileOutputStream("object.data"));

MyClass object = new MyClass();

output.writeObject(object);

output.close();

例子首先創(chuàng)建了一個(gè)ObjectOutputStream實(shí)例,向構(gòu)造參數(shù)傳入一個(gè)FileOutputStream。然后創(chuàng)建了一個(gè)MyClass實(shí)例并將其寫出去。最后關(guān)閉流。
在進(jìn)行序列化和反序列化之前,你要實(shí)現(xiàn)java.io.Serializable接口。

ObjectOutputStream 和 ObjectInputStream同時(shí)使用

下面是兩者一起使用的例子:

import java.io.*;

public class ObjectInputStreamExample {

    public static class Person implements Serializable {
        public String name = null;
        public int    age  =   0;
    }


    public static void main(String[] args) throws IOException, ClassNotFoundException {

        ObjectOutputStream objectOutputStream =
            new ObjectOutputStream(new FileOutputStream("data/person.bin"));

        Person person = new Person();
        person.name = "Jakob Jenkov";
        person.age  = 40;

        objectOutputStream.writeObject(person);
        objectOutputStream.close();


        ObjectInputStream objectInputStream =
            new ObjectInputStream(new FileInputStream("data/person.bin"));

        Person personRead = (Person) objectInputStream.readObject();

        objectInputStream.close();

        System.out.println(personRead.name);
        System.out.println(personRead.age);
    }
}

例子首先創(chuàng)建了一個(gè)ObjectOutputStream實(shí)例并向構(gòu)造方法傳入FileOutputStream。然后創(chuàng)建了一個(gè) Person 實(shí)例并將其寫到ObjectOutputStream,然后關(guān)閉流。
然后創(chuàng)建了一個(gè)ObjectInputStream實(shí)例,并且連接到和ObjectOutputStream同一文件。然后利用對象從ObjectInputStream讀取數(shù)據(jù)并將結(jié)果強(qiáng)轉(zhuǎn)成Person。隨后關(guān)閉輸入流并打印結(jié)果。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容