版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
主題:Java對象的序列化-Java核心技術(shù)-目標(biāo)序列化的概念對象流對象序列化和反序列化的實現(xiàn)機制什么是序列化創(chuàng)建一個對象,對其序列化(分解成字節(jié)流
)。網(wǎng)絡(luò)傳輸準(zhǔn)確無誤地重新“裝配”,即打開字節(jié)流并重構(gòu)對象。序列化的概念對象流是將對象的內(nèi)容進(jìn)行流化。序列化就是一種用來處理對象流的機制。對象序列化(serialize)是把對象轉(zhuǎn)換成字節(jié)序列的過程。將字節(jié)序列完全恢復(fù)為原來的對象的過程,稱為對象的反序列化(deserialize)。
復(fù)制對象本身及引用的對象本身。序列化一個對象可能得到整個對象序列。
“持久性”意味著一個對象的生命周期并不取決于程序是否正在執(zhí)行,對象可以生存于程序的調(diào)用之間。通過將一個序列化對象寫入磁盤,然后在重新調(diào)用程序時恢復(fù)該對象,就能夠?qū)崿F(xiàn)持久性的效果。
例如:從服務(wù)器硬盤上把序列化的對象取出,然后通過網(wǎng)絡(luò)傳到客戶端,再由客戶端把序列化的對象讀入內(nèi)存,執(zhí)行相應(yīng)的處理。序列化的作用對象序列化可以實現(xiàn)分布式對象。利用序列化可以將對象傳輸于網(wǎng)絡(luò)。利用序列化可以實現(xiàn)對象的“持久性”。利用對象序列化可以進(jìn)行對象的“深復(fù)制”。RMI(遠(yuǎn)程方法調(diào)用)要利用對象序列化運行遠(yuǎn)程主機上的服務(wù),就像在本地機上運行對象時一樣。Java中的序列化機制Java中一個類只要實現(xiàn)了Serializable接口,它的對象就可以被序列化工具存儲和恢復(fù)。Serializable接口沒有定義任何方法,它只是用來表示一個類的實例──對象可以被序列化。對象流java.io包有兩個序列化對象的類:
ObjectOutputStream負(fù)責(zé)將對象寫入字節(jié)流
ObjectInputStream從字節(jié)流重構(gòu)對象。序列化對象示例
示例:將一個Date類的實例保存到文件中。publicstaticvoidwriteDateToFile(Datedate,StringfileName) { try { FileOutputStreamfileOut= newFileOutputStream(fileName,false); ObjectOutputStreamobjectOut= newObjectOutputStream(fileOut); objectOut.writeObject(date); objectOut.close();//關(guān)閉對象流
fileOut.close();//關(guān)閉文件流
} catch(IOExceptionioe) {……} }創(chuàng)建一個對象輸出流。寫Date對象。
分析:只能對流化后的對象進(jìn)行讀寫操作。所以要先對Date類的實例進(jìn)行序列化操作。創(chuàng)建一個文件輸出流。序列化序列化一個對象的一般過程:步驟一:首先要創(chuàng)建某些OutputStream對象,然后以該對象為參數(shù)構(gòu)造一個ObjectOutputStream對象。步驟二:調(diào)用ObjectOutputStream類的writeObject()方法即可將對象序列化,并將其發(fā)送給OutputStream。
FileOutputStreamfileOut= newFileOutputStream(fileName,false);ObjectOutputStreamobjectOut= newObjectOutputStream(fileOut);objectOut.writeObject(date);//date是Date類的對象分析:只能對流化后的對象進(jìn)行讀寫操作。所以要先對Date類的實例進(jìn)行反序列化操作。publicstaticDatereadDateFromFile(StringfileName) {Datedate=null; try {FileInputStreamfileIn= newFileInputStream(fileName); ObjectInputStreamobjectIn= newObjectInputStream(fileIn); Objectobj=objectIn.readObject(); if(objinstanceofDate){date=(Date)obj;} else {System.err.println("從文件中讀出的對象不是Date類的實例。");……} objectIn.close();//關(guān)閉對象流
fileIn.close();//關(guān)閉文件流} catch(ClassNotFoundExceptioncnfe){……} returndate;}反序列化對象示例
示例:從文件中將Date實例恢復(fù)。創(chuàng)建一個對象輸入流。讀Date對象。
創(chuàng)建一個文件輸入流。反序列化反序列化一個對象的一般過程:步驟一:將一個InputStream封裝在ObjectInputStream內(nèi)。步驟二:調(diào)用ObjectInputStream的readObject()方法從字節(jié)流中反序列化對象。FileInputStreamfileIn= newFileInputStream(fileName);ObjectInputStreamobjectIn= newObjectInputStream(fileIn);Objectobj=objectIn.readObject();
//date是Date類的對象小結(jié)對象序列化是把對象轉(zhuǎn)換成一個字節(jié)序列的過程。將字節(jié)序列并完全恢復(fù)為原來的對象的過程,稱為對象的反序列化。java.io包有兩個序列化對象的類:ObjectOutputStream類
ObjectOutputStream類的writeObject()方法用于對象的序列化ObjectInputStream類
ObjectInputStream類的readObject()方法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版建筑工程施工監(jiān)理單位招標(biāo)投標(biāo)合同書3篇
- 二零二五版古籍文獻(xiàn)儲藏室修復(fù)合同3篇
- 二零二五年度高品質(zhì)膩子施工服務(wù)供應(yīng)合同2篇
- 二零二五版導(dǎo)游人員旅游安全責(zé)任合同3篇
- 小區(qū)車子棚施工合同(2篇)
- 2025年度新能源項目財務(wù)監(jiān)督出納人員擔(dān)保合同2篇
- 二零二五版車位購置及租賃合同樣本12篇
- 2025年度欠條收藏:古董字畫修復(fù)與交易合同3篇
- 二零二五年度高新技術(shù)項目研發(fā)團隊聘用合同范本3篇
- 二零二五年餐飲服務(wù)人員勞動合同樣本12篇
- 新教材人教版高中物理選擇性必修第二冊全冊各章節(jié)課時練習(xí)題及章末測驗含答案解析(安培力洛倫茲力電磁感應(yīng)交變電流等)
- 初級養(yǎng)老護(hù)理員培訓(xùn)全套
- 集中供熱管網(wǎng)系統(tǒng)一次網(wǎng)的調(diào)節(jié)方法
- GB/T 41095-2021機械振動選擇適當(dāng)?shù)臋C器振動標(biāo)準(zhǔn)的方法
- MRP、MPS計劃文檔教材
- 甲狀腺疾病護(hù)理查房課件
- 安全安全帶檢查記錄表
- GB∕T 26520-2021 工業(yè)氯化鈣-行業(yè)標(biāo)準(zhǔn)
- 2022年浙江省紹興市中考數(shù)學(xué)試題及參考答案
- Listen-to-this-3-英語高級聽力-(整理版)
- 生活垃圾焚燒處理建設(shè)項目評價導(dǎo)則(2022)
評論
0/150
提交評論