想要查看此教程的目錄請點擊:Java IO教程目錄貼地址
ObjectOutputStream(java.io.ObjectOutputStream)可以從OutputStream寫出Java對象來代替原始的字節。用ObjectOutputStream來包裝OutputStream然后就可以向其中寫入對象。
Java ObjectOutputStream經常會和Java ObjectInputStream一起使用。稍后會展示一個相關的例子。
ObjectOutputStream例子
下面是關于Java ObjectOutputStream的例子:
ObjectOutputStream objectOutputStream =
new ObjectOutputStream(new FileOutputStream("object.data"));
MyClass object = new MyClass();
output.writeObject(object);
output.close();
例子首先創建了一個ObjectOutputStream實例,向構造參數傳入一個FileOutputStream。然后創建了一個MyClass實例并將其寫出去。最后關閉流。
在進行序列化和反序列化之前,你要實現java.io.Serializable接口。
ObjectOutputStream 和 ObjectInputStream同時使用
下面是兩者一起使用的例子:
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);
}
}
例子首先創建了一個ObjectOutputStream實例并向構造方法傳入FileOutputStream。然后創建了一個 Person 實例并將其寫到ObjectOutputStream,然后關閉流。
然后創建了一個ObjectInputStream實例,并且連接到和ObjectOutputStream同一文件。然后利用對象從ObjectInputStream讀取數據并將結果強轉成Person。隨后關閉輸入流并打印結果。