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 ...