串行化(Serialization)[VC/C++编程]
本文“串行化(Serialization)[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
串行化是微软供应的用于对对象举行文件I/O的一种机制,该机制在框架(Frame)/文档(Document)/视图(View) 情势中得到了很好的利用.很多人对什么是串行化、怎么使对象具有串行化本领和若何利用串行化功效等问题都不甚明了.本文试图对串行化做一个简单的注释.由于本人对串行化功效利用的也不多,不足之处敬请谅解.
MFC 框架/文档/视图构造中的文件读写
CFile是MFC类库中全部文件类的基类.全部MFC供应的文件I/O功效都和这个类有关.很多情形下,大家都喜好直接调用CFile::Write/WriteHuge来写文件,调用CFile::Read/ReadHuge来读文件.这样的文件I/O其实和不利用MFC的文件 I/O没有什么辨别,乃至和从前的ANSI C的文件I/O也没有多少差别,所差别的不外乎是调用的API差别罢了.
在开始学习C++的时刻,大家一定对cin/cout非常熟习,这两个对象利用十清楚了的<<和>>运算符举行 I/O,其利用格局为://示例代码1
int i;
cin >> i;
//here do something to object i
cout << i;
利用这种方法举行I/O的好处时,操纵运算符重载功效,可以用一个语句完成对一系列的对象的读写,而不需求辨别对象具体的范例.MFC供应了类CArchive,实现了运算符<<和>>的重载,但愿按照前面cin和cout 的方法举行文件I/O.通过和CFile类的配合,不但仅实现了对简单范比方int/float等的文件读写,并且实现了对可序列化对象(Serializable Objects,这个概念背面描写)的文件读写.
普通情形下,利用CArchive对对象举行读操作的历程以下:
//示例代码2
//定义文件对象和文件非常对象
CFile file;
CFileException fe;
//以读方法翻开文件
if(!file.Open(filename,CFile::modeRead,&fe))
{
fe.ReportError();
return;
}
//构建CArchive 对象
CArchive ar(&file,CArchive::load);
ar >> obj1>>obj2>>obj3...>>objn;
ar.Flush();
//读完毕,关闭文件流
ar.Close();
file.Close();
利用CArchive对对象举行写操作的历程以下://示例代码3
//定义文件对象和文件非常对象
CFile file;
CFileException fe;
//以读方法翻开文件
if(!file.Open(filename,CFile::modeWrite|CFile::modeCreate,&fe))
{
fe.ReportError();
return;
}
//构建CArchive 对象
CArchive ar(&file,CArchive::load);
ar << obj1<<obj2<<obj3...<<objn;
ar.Flush();
//写完毕,关闭文件流
ar.Close();
file.Close();
以上是“串行化(Serialization)[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |