c 序列化bin檔案 和反序列化讀取

2021-09-29 03:48:06 字數 881 閱讀 9498

c#的.net序列化有多種方式,大多使用流來建立二進位制檔案。這裡以其中一種為例:

序列化bin檔案:

stream fstream = new filestream(path, filemode.create, fileaccess.write, fileshare.none);

binaryformatter binformat = new binaryformatter();//建立二進位制序列化器

binformat.serialize(fstream, infos);

fstream.dispose();

fstream.close();

* 其中infos可以是鍊錶,字典等或者自定義類結構體 

*這裡的寫入流要使用write並且共享設定成none,不然會影響你的讀取

* 如果說又多個檔案同時序列化,那麼需要吧這一塊copy到迴圈裡邊,流的釋放和關閉不能再使用後延遲,要立即關閉

如果沒有及時關閉和釋放會影響接下來的 儲存

反序列化讀取:

filestream fs = new filestream(path , filemode.open, fileaccess.read);

binaryformatter binayformat = new binaryformatter();

configdata.teaminfos = (list)binayformat.deserialize(fs);

*值得注意的是,這裡的流要是讀取流,如果fileaccss選了readandwrite ,當你讀取時會丟擲異常,說檔案共享屬性被占用

* (list)binayformat.deserialize(fs);反序列化過來直接強轉到對應型別即可

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

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

C 序列化和反序列化

binaryserialize serialize new binaryserialize book book serialize.deserialize book.write 3 測試用的 binaryserialize類 using system using system.collections...

C 序列化和反序列化

對stu類進行序列化和反序列化操作序列化所用到的stu類using system using system.collections.generic using system.linq using system.text public string stuname public int stuage ...