- 相關推薦
java對象序列化與對象反序列化
Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于PC、數據中心、游戲控制臺、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社群。以下是小編為大家搜索整理的java反序列化對象的技巧,歡迎閱讀!更多精彩內容請及時關注我們考試網!
下面的DeserializeDemo程序實例了反序列化,/tmp/employee.ser存儲了Employee對象。
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);
}
}
以上程序編譯運行結果如下所示:
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。
【java對象序列化與對象反序列化】相關文章:
java序列化對象的技巧09-30
如何理解Java對象的序列化09-26
java反序列化對象的技巧08-29
java序列化對象的技巧 資料08-28
java序列化的方法10-06
java序列化的方法有哪些10-06
php多種序列化、反序列化的方法07-08
PHP多種序列化和反序列化的方法06-26
Java的面向對象05-16