序列化與反序列化

2022-09-11 17:57:08 字數 1029 閱讀 5214

1.序列化的概念:

序列化就是將物件的狀態儲存到特定的儲存介質中的過程,也就是將物件的狀態轉換為可保持或傳輸格式的過程.在序列化的過程中,會將物件的公有成員/私有成員包括類名,轉換為位元組流,然後再把位元組流寫入到資料流,儲存到儲存介質中,這裡說的儲存介質通常是指檔案.

使用序列化的意義在於j**a物件序列化後,可以將其轉換為位元組序列,這些位元組序列可以被儲存在磁碟上,也可以借助網路進行傳輸,同時序列化後的物件儲存的是二進位制狀態,這樣實現了平台無關性.

物件序列化的步驟很簡單,可以分為兩大步:

1) 建立乙個物件輸出流(objectoutputstream),它可以包裝乙個其他型別的輸出流,如檔案輸出流fileoutputstream.

objectoutputstream oos = new objectoutputstream(new fileoutputstream(path));

2) 通過物件輸出流的writeobject(object object)方法寫物件,也就是輸出可序列化物件.

oos.writeobject(object object);

注意:j**a中只有實現了j**a.io.serializable介面的物件才能被序列化.   

2.反序列化的概念:

序列化是將物件的狀態資訊儲存到儲存介質中(輸出/寫),反序列化則是從特定的儲存介質中將資料重新構建物件的過程(輸入/讀).通過反序列化,可以將儲存在檔案上的物件資訊讀取,然後重新構建為物件.

反序列化的步驟大致概括為兩步:

1)建立乙個物件輸入流(objectinputstream),它可以包裝乙個其他型別的輸入流,如檔案輸入流fileinputsinputstream

objectinputstream ois = new objectinputstream(new fileinputstream(path));

2)通過物件輸入流的readobject()方法讀取該物件,方法返回乙個object物件,如果j**a知道該j**a物件的型別,則可以將該物件強制轉換成其真實型別.

object obj = ois.readobject;

序列化和反序列化 C 序列化與反序列化。

序列化介紹 把物件用一種新的格式來表示。系列化只序列化資料。序列化不建議使用自動屬性 為什麼要序列化 將乙個複雜的物件轉換流,方便儲存與資訊交換。class program class person public int age 二進位制序列化 就是將物件變成流的過程,把物件變成byte class...

序列化與反序列化

把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 eg stooges array moe larry curly new serialize stooges print r new echo print r unserial...

序列化與反序列化

序列化是將物件處理為位元組流以儲存物件或傳輸到記憶體 資料庫或檔案。其主要目的是儲存物件的狀態,以便可以在需要時重新建立物件。相反的過程稱為反序列化。通過序列化,開發人員可以儲存物件的狀態,並在需要時重新建立該物件,從而提供物件的儲存以及資料交換。通過序列化,開發人員還可以執行類似如下的操作 通過 ...