Java將對象寫入文件讀出_序列化與反序列化的實例
Java類中對象的序列化工作是通過ObjectOutputStream和ObjectInputStream來完成的。
寫入:
File aFile=new File("e:\\c.txt");
Stu a=new Stu(1, "aa", "1");
FileOutputStream fileOutputStream=null;
try {
fileOutputStream = new FileOutputStream(aFile);
ObjectOutputStream objectOutputStream=new ObjectOutputStream(fileOutputStream);
objectOutputStream.writeObject(a);
objectOutputStream.flush();
objectOutputStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(fileOutputStream!=null)
{
try {
fileOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
讀取:
FileInputStream fileInputStream=new FileInputStream(aFile); ObjectInputStream objectInputStream=new ObjectInputStream(fileInputStream); Stu s=(Stu)objectInputStream.readObject(); System.out.println(s);
注意:
對于任何需要被序列化的對象,都必須要實現(xiàn)接口Serializable,它只是一個標(biāo)識接口,本身沒有任何成員,只是用來標(biāo)識說明當(dāng)前的實現(xiàn)類的對象可以被序列化。
如果在類中的一些屬性,希望在對象序列化過程中不被序列化,使用關(guān)鍵字transient標(biāo)注修飾就可以。當(dāng)對象被序列化時,標(biāo)注為transient的成員屬性將會自動跳過。如果一個可序列化的對象包含某個不可序列化對象的引用,那么序列化操作會失敗,會拋出NotSerializableException異常,那么將這個引用標(biāo)記transient,就可以序列化了。
當(dāng)一個對象被序列化時,只保存對象的非靜態(tài)成員變量,不能保存任何的成員方法,靜態(tài)的成員變量。
如果一個對象的成員變量是一個對象,那么這個對象的數(shù)據(jù)成員也會被保存還原,而且會是遞歸的方式。
以上這篇Java將對象寫入文件讀出_序列化與反序列化的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java多線程和并發(fā)基礎(chǔ)面試題(問答形式)
多線程和并發(fā)問題是Java技術(shù)面試中面試官比較喜歡問的問題之一。在這里,從面試的角度列出了大部分重要的問題,感興趣的小伙伴們可以參考一下2016-06-06
SpringBoot自動配置實現(xiàn)流程詳細(xì)分析
這篇文章主要介紹了SpringBoot自動配置原理分析,SpringBoot是我們經(jīng)常使用的框架,那么你能不能針對SpringBoot實現(xiàn)自動配置做一個詳細(xì)的介紹。如果可以的話,能不能畫一下實現(xiàn)自動配置的流程圖。牽扯到哪些關(guān)鍵類,以及哪些關(guān)鍵點2022-12-12
SpringBoot熔斷機(jī)制之CircuitBreaker詳解
這篇文章主要介紹了SpringBoot熔斷機(jī)制之CircuitBreaker詳解,SpringBoot的熔斷機(jī)制在微服務(wù)架構(gòu)中扮演著重要角色,其中CircuitBreaker是其核心機(jī)制之一,用于防止服務(wù)的異常狀態(tài)影響到整個系統(tǒng)的運作,需要的朋友可以參考下2023-10-10
SpringBoot添加Email發(fā)送功能及常見異常詳解
本篇文章主要介紹了SpringBoot添加Email發(fā)送功能及常見異常詳解,具有一定的參考價值,有興趣的可以了解一下。2017-04-04
SpringBoot啟動security后如何關(guān)閉彈出的/login頁面
這篇文章主要介紹了SpringBoot啟動security后如何關(guān)閉彈出的login頁面問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12

