飞鸽传书 如何实现文件的序列号存取,本文关于 CArchive 类对文件进行读写操作《序列化》,CArchive类是一种新的对文件的读定操作方式.它没有基类。
我们知道,一个对象一旦被构造,它就存活于内存中了,当其生命周期结束之后,该对象就要被销毁。那么该如何永久保存该对象呢,即在程序再次打开后,程序能够重新构建相应的对象,还原该对象以前的动作(当然首先这个对象类要有动态创建的功能)。
CArchive类就是可以将对象永久保存在磁盘中,它的这种功能叫做串行化或序列化。
CArchive类不仅可以处理基本类型的数据,还可以处理CObject类的派生类对象。它重载了<<(插入)和>>(提取)操作符。
CArchive类的使用方法:
1、创建一个CFile类或者其派生类对象,且该文件的操作方式(读,写)要与CArchive对象的操作方式一致.
2、此时再构建一个CArchive对象,并将其与CFile对象关联起来.
3、此时就可以对CArchive对象进行读写操作了,数据类型可以不一样。
4、当进行读取数据时,要保持和写入数据时的顺序一致.
例子:
//存文件
CFile file("file.txt",CFile::modeCreate|CFile::modeWrite); //写入文件
CArchive ar(&file,CArchive::store); //关联文件,同时操作方式一致,都是存文件
int i=4;
char ch='a';
float f=1.3f;
CString str("dfasdaf");
ar<<i<<ch<<f<<str; //将不同内容的数据写入文件file.txt中.
//读文件
CFile file("file.txt",CFile::modeRead); //读出文件内容
CArchive ar(&file,CArchive::load); //关联文件,同时操作方式一致,都是读出文件内容
int m;
char l;
float fl;
CString str;
ar>>m>>l>>fl>>str; //将不同内容的数据从文件file.txt中读取出来,但一定要保证读出与写入时数据类型
//的数据顺序要一致,要不然读出的数据就会不正确,例如将字符串内容放入整型变量时
//值是不一样的.
CArchive 飞鸽传书 如何实现文件的序列号存取
最新推荐文章于 2023-03-07 20:30:00 发布