想要查看此教程的目錄請點(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é)果。