java對象序列化與對象反序列化

Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用於PC、數據中心、遊戲控制檯、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社羣。以下是小編爲大家搜索整理的java反序列化對象的技巧,歡迎閱讀!更多精彩內容請及時關注我們考試網!

java對象序列化與對象反序列化

下面的DeserializeDemo程序實例了反序列化,/tmp/存儲了Employee對象。

import .*;

public class DeserializeDemo

{

public static void main(String [] args)

{

Employee e = null;

try

{

FileInputStream fileIn = new FileInputStream("/tmp/");

ObjectInputStream in = new ObjectInputStream(fileIn);

e = (Employee) Object();

e();

e();

}catch(IOException i)

{

tStackTrace();

return;

}catch(ClassNotFoundException c)

{

tln("Employee class not found");

tStackTrace();

return;

}

tln("Deserialized Employee...");

tln("Name: " + );

tln("Address: " + ess);

tln("SSN: " + );

tln("Number: " + er);

}

}

以上程序編譯運行結果如下所示:

Deserialized Employee...

Name: Reyan Ali

Address:Phokka Kuan, Ambehta Peer

SSN: 0

Number:101

這裏要注意以下要點:

readObject() 方法中的try/catch代碼塊嘗試捕獲 ClassNotFoundException異常。對於JVM可以反序列化對象,它必須是能夠找到字節碼的類。如果JVM在反序列化對象的過程中找不到該類,則拋出一個 ClassNotFoundException異常。

注意,readObject()方法的'返回值被轉化成Employee引用。

當對象被序列化時,屬性SSN的值爲111222333,但是因爲該屬性是短暫的,該值沒有被髮送到輸出流。所以反序列化後Employee對象的SSN屬性爲0。