檔案與序列化

2021-07-31 15:38:42 字數 848 閱讀 3145

carchive類:它沒有基類,它允許你儲存乙個複雜的物件網路在乙個永久的二進位制形式上,通常是硬碟,在這個物件被刪除之後保持永續性,以後可以從持久的儲存器上載入這個物件,在記憶體中重新構建它們,使物件永續性的過程叫序列化;

序列化過程:將物件、資料寫到磁碟,物件刪除後,資料儲存在磁碟,當下次再呼叫資料時,重新從磁碟中載入資料,並構建物件,使資料持久化,的這個過程.

可以認為它是乙個輸入輸出的二進位製流,就像輸入輸出流,乙個archive它與乙個檔案相關,允許帶緩衝的寫入資料到儲存器上,或者帶緩衝的從儲存器上讀取資料,乙個輸入輸出流它處理ascii字串行,但是archive它以一種有效率的非冗餘的格式處理二進位制物件資料

當你構建乙個carchive物件,將要將cfile類或都其派生類的物件關聯到一起,表示乙個開啟的檔案,你也可以指定這個archive是否用來載入和儲存,乙個carchive物件它不僅僅可以處理基本型別,也可以處理carchive派生類的物件.

過載的提取》和插入《操作符,它支援基本型別和派生類,是很方便的

carchive::carchive(

cfile *pfile,  //cfile物件

uint nmode,//將被載入還是儲存的乙個標記,

int  nbufsize=4096,//指定內部檔案buffer的大小,預設4096

void * lpbuf =null,//指向使用者所指寫的以nsize為大小的buffer, 如查沒有指定,archive會從本地堆當中分配乙個buffer,並且物件被銷毀時釋放這個buffer.但它並不會釋放使用者提供的buffer.

示例:void ctestview::onfilewrite() 

void ctestview::onfileread() 

序列化與發序列化

1.序列化與反序列化都用的是相同的 binaryformatter bf new binaryformatter 2.使用 流 的方式 filestream fs new filestream 序列化內容路徑 一般為本地bin debug檔案中 類名.bin filemode.openorcreat...

序列化與反序列化

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

序列化與反序列化

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