在Java程序執行過程中,很多數據都是以對象的方式存在於內存當中。有時會希望直接將內存中的整個對象存儲至文件,而不是隻存儲對象中的某些特定成員信息。ObjectInputStream和ObjectOutputStream這2個包裝類就用於從底層輸入流中讀取對象類型的數據和將對象類型的數據寫入到底層輸出流。
需要注意的是ObjectInputStream和ObjectOutputStream類所讀寫的對象必須實現了java.io.Serializable接口。對象中的transien和static類型的成員變量不會被讀取和寫入。不過Serializable接口中並沒有規範任何必須實現的方法,所以這裏所謂實現的意義,其實就像是對對象貼上一個標誌,代表該對象是可序列化的。
下面我們來寫個實例來演示一下:
創建一個可序列化的學生對象,並用ObjectOutputStream把它存儲到一個students.txt的文本文件中,然後用ObjectInputStream類把存儲的數據讀取到一個學生對象中。
首先定義一個學生類,有4個屬性,實現Serializable接口
Students.java
然後定義一個執行類。
ObjectStreamTest.java
版權聲明: 原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。