本章首先介绍了一种新的读写文件方式,使用MFC提供的CArchive类来实现。可以利用CArchive类将对象数据保存到永久设备上。这样即使应用程序关闭,再次启动后仍然可以从磁盘上读取对象数据,然后在内存中重构相应的对象。让数据持久性的过程成为串行化或序列化。
CArchive对象不仅可以处理基本类型的数据,还可以处理CObject类的派生对象。CArchive类重载了提取(>>)和插入(<<)操作符。通过这些重载的函数,可以利用CArchive对象完成对文件的读写操作。
CArchive构造函数的声明如下:
1 CArchive( CFile* pFile, UINT nMode, int nBufSize = 4096, void* lpBuf = NULL );
pFile:指向文件对象的指针,该文件对象是持久数据的来源或目的地;
nMode:文件对象的标示符(load,store)读取还是存储;
CArchive类写入数据的实例:
01 void CFileView::OnFileWrite()
02 {
03 CFile file("7.txt",CFile::modeCreate|CFile::modeWrite);
04 CArchive ar(&file,CArchive::store);
05 int i=1;
06 char ch='1';
07 float f=1.3f;
08 CString str="www.colsir.com";
09 ar<
10 }
完成写入操作之后,用记事本打开7.txt,发现基本上都是乱码。这是因为CArchive对象是一种二进制流。
CArchive类读取数据的实例:
01 void CFileView::OnFileRead()
02 {
03 CFile file("7.txt",CFile::modeRead);
04 CArchive ar(&file,CArchive::load);
05 int i;