Java ObjectInputStream 和 ObjectOutputStream
概述
該流可以將一個基本數據和對象進行序列化,或者讀取一個基本數據和對象到程序中. 也就是執行了序列化和反序列化的操作
被序列化的對象的類必須實現 Serializable 接口
序列化和反序列化對象的示例
ObjectOutputStream output = null;
ObjectInputStream input = null;
try {
// 創建兩個商品對象
Product p1 = new Product("冰箱", 1000);
Product p2 = new Product("電視機", 2000);
// 創建對象輸出流
output = new ObjectOutputStream(new FileOutputStream("product.obj"));
// 寫出兩個對象
output.writeObject(p1);
output.writeObject(p2);
// 關閉輸出流
output.close();
// 創建對象輸入流,讀取被持久化的對象
input = new ObjectInputStream(new FileInputStream("product.obj"));
// 打印對象信息
System.out.println(input.readObject());
System.out.println(input.readObject());
// 關閉流
input.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(input != null) {
input.close();
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(output != null) {
output.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 運行結果