序列化與反序列化

2021-08-28 02:51:29 字數 1842 閱讀 2788

1.序列化: 把物件轉換成位元組序列的過程;把物件進行拆分成位元組,有順序

如何序列化:

1.類實現serializable介面 (標識介面)

2.序列化的類

objectoutputstream

dataoutputstream

3.不能被序列化

靜態的變數,transient修飾的變數

2.反序列化:把位元組序列轉化成物件的過程; 把位元組組裝成物件

objectinputstream

datainputstream

3.作用

1.有利於物件儲存到磁碟檔案

2.有利於物件在網路上傳輸

序列化步驟:

company檔案:

1、class company implements serializable//實現序列化介面

private static final long serialversionuid = 5988246887021315928l;

2、public company(int id, string name) {

super();

this.id = id;

this.name = name;

(建立文字儲存想儲存的物件,然後將二進位制檔案放入位元組輸出流,此時將位元組輸出流強化直接傳輸物件,最後用強化輸出流通過writeobject方法直接傳輸最初建立的raky物件)

company raky = new company(1000,"小公尺");

第一步:儲存到目標檔案用來儲存物件

file dest = new file("e:\\raky_object.txt");

第二步:建立檔案輸出流

fileoutputstream fos = new outputstream(dest);

第三步:建立物件輸出流(用來傳輸物件資料) 此時會報ioexception異常

objectoutputstream oos = new objtctoutputstram(fos);

(前三步可寫成)objectoutputstream oos = new objectoutputstream(new outputstream(new

file("e:\\raky.txt")));

第四步:寫物件(將整體資料轉換成位元組輸出)

oos.writeobject(raky);

第五步:關閉資源

oos.close();

反序列化:將二進位制檔案中的內容分轉換成物件

file source = new file("e:\\raky_object.txt");

第二步:建立檔案輸入流,傳輸要進過的二進位制檔案

fileinputstream fis = new fileinputstream(source);

第三步:建立檔案輸入流加強管道,將檔案輸入流進行改造

objectinputstream ois = new objectinputstream(fis);

(前三步可寫成) objectinputstream ois = new objectinputstram(new fileinputstream(new

file("e:\\raky.txt")));

第四步:將object向下轉型成raky物件

object o = ois.readobject();

if(o instanceof company){

company raky = (company)o;

system.out.println(raky.getname());

system.out.println(raky);

序列化和反序列化 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...

序列化與反序列化

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