java入門 -- 對象的序列化和反序列化

/*

* 對象的輸入輸出流:

* 作用:用于寫對象的信息與讀取對象的信息,對象信息一旦寫到文件上那么對象的信息就可以做到持久化了津滞。

* 對象的輸出流:

* ObjectOutputStram

* 使用步驟:

*? 1.定位要輸出的文件位置;

*? 2. 定義輸入字節(jié)流通道:

*? 3. 定義對象輸出通道:

*? 4.輸入對象信息:

*? 5.關閉資源灼伤;

* 對象的輸入流:

* ObjectInputStream

* 使用步驟:

* 1.定義要輸入的文件的對象信息文件位置触徐;

*? 2.定義輸入字節(jié)流通道:

*? 3.定義對象輸入通道;

*? 4.讀取對象信息狐赡;

*? 5.關閉資源撞鹉;

*

*? *? 注意事項:

*? 1. 如果對象需要被寫入到文件中,那么對象必須實現Serializable接口颖侄,Serializable接口沒有任何方法鸟雏,是一個標識接口;

*? 所有的集合類都實現了該接口;

*? 2.對象的反序列化不會調用構造方法览祖;

*? 3. serialVersionUID 是用于記錄class文件的版本信息的孝鹊,serialVersionUID是通過類名、成員名展蒂、報名和工程名算出來的數字又活。

*? 4.如果反序列化使用了ObjectInputStream反序列化的時候,ObjectInputStream 會先讀取文件的serialVersionUID,然后與本地的class文件的serialVersionUID

*? 進行對比锰悼,如果id不一致柳骄,那么反序列化就會失敗箕般;

*? 5.如果序列化與反序列化的時候可能修改類的成員耐薯,那么最好最開始就給這個類指定一個serialVersionUIG,如果類的serialVersionUID指定了,俺么在序列化

*? 和反序列化的時候隘世,jvm就不會再計算serialVersionUID;

*

*? 6.成員前面加上transient關鍵字可柿,該成員就不會被寫出了、

*? 7.如果要給類中的成員是另一個類的引用丙者,那么該類也要實現Serializable,才能夠被寫入;

*/

package com.michael.lin;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.io.Serializable;

class User implements Serializable{

String userName; //用戶民

String password; //密碼

public User(String userName, String password){

this.userName = userName;

this.password = password;

}

@Override

public String toString() {

// TODO Auto-generated method stub

return "用戶名" + this.userName + "密碼" + this.password;

}

}

public class Demo03 {

public static void main(String[] args) throws IOException, ClassNotFoundException{

//把User的對象持久化存儲

writeObj();

readObj();

}

//把對象的信息寫入到硬盤上 --> 對象的序列化

public static void writeObj() throws IOException{

User user = new User("michael", "123");

//找到目標文件

File file = new File("g:\\obj.txt");

//建立文件輸出流通道

FileOutputStream fileOutputStream = new FileOutputStream(file);

//建立對象輸出流通道

ObjectOutputStream objOutputStream = new ObjectOutputStream(fileOutputStream);

//對象輸出

objOutputStream.writeObject(user);

objOutputStream.close();

}

//對象的反序列化,把文件中的對象信息讀取出來

public static void readObj() throws IOException, ClassNotFoundException{

//1.定義對象信息文件袋餓位置

File file = new File("g:\\obj.txt");

//2.定義輸出文件字節(jié)流:

FileInputStream fileInputStream = new FileInputStream(file);

//3.定義對象輸出通道

ObjectInputStream objInputStream = new ObjectInputStream(fileInputStream);

//4.讀取對象信息;

System.out.println(objInputStream.readObject());

//5.關閉資源

objInputStream.close();

}

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末复斥,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子械媒,更是在濱河造成了極大的恐慌目锭,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纷捞,死亡現場離奇詭異痢虹,居然都是意外死亡,警方通過查閱死者的電腦和手機主儡,發(fā)現死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門奖唯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人糜值,你說我怎么就攤上這事丰捷∨髂” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵病往,是天一觀的道長捣染。 經常有香客問我,道長停巷,這世上最難降的妖魔是什么耍攘? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮畔勤,結果婚禮上蕾各,老公的妹妹穿的比我還像新娘。我一直安慰自己庆揪,他們只是感情好示损,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嚷硫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪始鱼。 梳的紋絲不亂的頭發(fā)上仔掸,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天,我揣著相機與錄音医清,去河邊找鬼起暮。 笑死,一個胖子當著我的面吹牛会烙,可吹牛的內容都是我干的负懦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼柏腻,長吁一口氣:“原來是場噩夢啊……” “哼纸厉!你這毒婦竟也來了?” 一聲冷哼從身側響起五嫂,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤颗品,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沃缘,有當地人在樹林里發(fā)現了一具尸體躯枢,經...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年槐臀,在試婚紗的時候發(fā)現自己被綠了锄蹂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡水慨,死狀恐怖得糜,靈堂內的尸體忽然破棺而出敬扛,到底是詐尸還是另有隱情,我是刑警寧澤掀亩,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布舔哪,位于F島的核電站,受9級特大地震影響槽棍,放射性物質發(fā)生泄漏捉蚤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一炼七、第九天 我趴在偏房一處隱蔽的房頂上張望缆巧。 院中可真熱鬧,春花似錦豌拙、人聲如沸陕悬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捉超。三九已至,卻和暖如春唯绍,著一層夾襖步出監(jiān)牢的瞬間拼岳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工况芒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惜纸,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓绝骚,卻偏偏與公主長得像耐版,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子压汪,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內容