- 相關(guān)推薦
java反序列化對(duì)象的技巧
Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開(kāi)發(fā)者專(zhuān)業(yè)社群。以下是小編為大家搜索整理的java反序列化對(duì)象的技巧,歡迎閱讀!更多精彩內(nèi)容請(qǐng)及時(shí)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
下面的DeserializeDemo程序?qū)嵗朔葱蛄谢?tmp/employee.ser存儲(chǔ)了Employee對(duì)象。
import java.io.*;
public class DeserializeDemo
{
public static void main(String [] args)
{
Employee e = null;
try
{
FileInputStream fileIn = new FileInputStream("/tmp/employee.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
e = (Employee) in.readObject();
in.close();
fileIn.close();
}catch(IOException i)
{
i.printStackTrace();
return;
}catch(ClassNotFoundException c)
{
System.out.println("Employee class not found");
c.printStackTrace();
return;
}
System.out.println("Deserialized Employee...");
System.out.println("Name: " + e.name);
System.out.println("Address: " + e.address);
System.out.println("SSN: " + e.SSN);
System.out.println("Number: " + e.number);
}
}
以上程序編譯運(yùn)行結(jié)果如下所示:
Deserialized Employee...
Name: Reyan Ali
Address:Phokka Kuan, Ambehta Peer
SSN: 0
Number:101
這里要注意以下要點(diǎn):
readObject() 方法中的try/catch代碼塊嘗試捕獲 ClassNotFoundException異常。對(duì)于JVM可以反序列化對(duì)象,它必須是能夠找到字節(jié)碼的類(lèi)。如果JVM在反序列化對(duì)象的過(guò)程中找不到該類(lèi),則拋出一個(gè) ClassNotFoundException異常。
注意,readObject()方法的返回值被轉(zhuǎn)化成Employee引用。
當(dāng)對(duì)象被序列化時(shí),屬性SSN的值為111222333,但是因?yàn)樵搶傩允嵌虝旱,該值沒(méi)有被發(fā)送到輸出流。所以反序列化后Employee對(duì)象的SSN屬性為0。
【java反序列化對(duì)象的技巧】相關(guān)文章:
java序列化對(duì)象的技巧03-27
如何理解Java對(duì)象的序列化11-30
java對(duì)象持久化的使用技巧03-28
java面向?qū)ο缶幊讨v解04-02
JAVA對(duì)象創(chuàng)造及內(nèi)存布局介紹12-04