對象操作流

對象操作流:可以用于讀寫任意類型的對象

ObjectOutputStream

writerObject

ObjectOutputStream(OutputStream out)

ObjectInputStream

readObject

ObjectInputStream(InputStream in)

注意:使用對象輸出流寫對象,只能使用對象輸入流來讀取對象

只能支持java.io.Serializable接口的對象寫入流中

java.io.Serializable:序列號,是一個標識接口,只起標識只用,沒有方法

當一個類的對象需要IO流進行度讀寫的時候,這個類必須要實現(xiàn)該接口

try{
while(true){
? Object obj = ois.readObject();
? System.out.println(obj);
}
}catch(EOFException e){
? System.out.println("讀到文件末尾");
}
ObjectOutputStream oos =new ObjectOutputStream(new FileOutput("b.txt"));
ArrayList<student> list = new ArrayList<stuednt>();
list.add(new student("wangwu",30));
list.add(new student("zhangsna",28));
oos.writerObject(list);
oos.close();
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("b.txt"));
Object obj = ois.readObject();
ArrayList<Student> list = (ArrayList<Student>) obj;
for(Student student:list){
? System.out.println(student)
}

解決對象序列化接口出現(xiàn)的黃色警告問題

Exception in thread "mian" java.io.InvalidClassExceptio

當Serialization 運行時檢測到某個局域一下問題之一時,拋出異常

該類的序列版本號與從流中讀取的類的描述不匹配

該類包含未知數(shù)據(jù)類型

該類沒有可訪問的無參數(shù)構造方法

解決方法:固定使用同一個serialVersionID

private static final serialVersionID = XXXXL

使用同一個ID時,讀寫不會發(fā)生異常

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容