WEB开发网
开发学院软件开发VC Visual C++中对象的序列化与文件I/O研究 阅读

Visual C++中对象的序列化与文件I/O研究

 2008-11-13 19:32:36 来源:WEB开发网   
核心提示: void CSample04Doc::Serialize(CArchive& ar){// 使用定制持久类m_Position.Serialize(ar);if (ar.IsStoring()){}else{}}文件I/O虽然使用CArchive类内建的序列化功能是保存和加载持久性数据的便

void CSample04Doc::Serialize(CArchive& ar)
{
 // 使用定制持久类
 m_Position.Serialize(ar);
 if (ar.IsStoring())
 {
 }
 else
 {
 }
}
文件I/O

虽然使用CArchive类内建的序列化功能是保存和加载持久性数据的便捷方式,但有时在程序中需要对文件处理过程拥有更多的控制权,对于这种文件输入输出(I/O)服务的需求,Windows提供了一系列相关的API函数,并由MFC将其封装为CFile类,提供了对文件进行打开,关闭,读,写,删除,重命名以及获取文件信息等文件操作的基本功能,足以处理任意类型的文件操作。CFile类是MFC文件类的基类,支持无缓冲的二进制输入输出,也可以通过与CArchive类的配合使用而支持对MFC对象的带缓冲的序列化。

CFile类包含有一个公有型数据成员m_hFile,该数据成员包含了同CFile类对象相关联的文件句柄。如果没有指定句柄,则该值为CFile::hFileNull。由于该数据成员所包含的意义取决于派生的类,因此一般并不建议使用m_hFile。

通过CFile类来打开文件可以采取两种方式:一种方式是先构造一个CFile类对象然后再调用成员函数Open()打开文件,另一种方式则直接使用CFile类的构造函数去打开一个文件。下面的语句分别演示了用这两种方法打开磁盘文件“C:TestFile.txt”的过程:

// 先构造一个实例,然后再打开文件

CFile file;

file.Open(“C:TestFile.txt”, CFile::modeReadWrite);

……

// 直接通过构造函数打开文件

CFile file(“C:TestFile.txt”, CFile::modeReadWrite);

其中参数CFile::modeReadWrite是打开文件的模式标志,CFile类中与之类似的标志还有十几个,现集中列表如下:

上一页  1 2 3 4 5 6 7  下一页

Tags:Visual 对象 序列化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接