MFC学习笔记:CArchive类的使用

CArchive(读作 [si:'ɑ:kaiv])没有基类,它可以将任意类型的数据直接按照二进制形式永久存储在磁盘上,并可以读取磁盘上的归档文件,再恢复为原来的数据。这种数据永久保留的过程叫作" 串行化"。
 
1.构造函数
CArchive ( CFile *  pFile,UINT nMode,int nBufSize=4096,void* lpBuf=NULL );

pFile是永久数据的最终的源或目标文件对应的CFile对象; 
nMode参数指明是要从归档文件中装载或存储到文件中去;
如下代码构造一个CArchive对象:
CFile  file("test.bin",CFile::modeCreate|CFile::modeWrite|CFile::typeBinary);
CArchive  ar(&file,CArchive::store);
 
2.写入数据到文件
operator  <<
CArchive类重载了<<操作符,用来写入数据,该操作符支持的参数类型有:
CObject *, BYTE , WORD , int , LONG , DWORD , float , double

如下代码将二进制数据1B DE 83 42 CA C0 F3 3F写入到test.bin中:
double  d=1.23456789; //1.23456789在内存中的二进制表示:1B DE 83 42 CA C0 F3 3F
ar<<d;
 
可以用如下代码试试1B DE 83 42 CA C0 F3 3F表示的数据:
double  doubleValue=0.0;
unsigned  char bin[]={0x1b,0xde,0x83,0x42,0xca,0xc0,0xf3,0x3f};
memcpy (& doubleValue , bin ,8); // 此时 doubleValue=1.23456789
 
3.从文件读取数据

operator  >>
CArchive类重载了>>操作符,用来读取数据,示例代码如下:
CFile  file("test.bin",CFile::modeRead|CFile::typeBinary);
CArchive  ar(&file,CArchive::load);
double  d=0.0;
ar >> d ; // 此时 d=1.23456789
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值