MFC下的序列化输出输入

前不久用MFC编写Bayes算法时需要将训练模型序列化输出到文件。具体用法是:

①首先利用CFile类新建一个文件对象用于指向模型文件。

②然后再利用CArchive类指向该文件对象用于序列化输出。

③最后,要序列化输出的变量通过调用Serialize()函数向模型文件中写入数据。

 

相关代码如下:

//序列化输出
long BayesTrain::OutputBayesModel()
{
 CFile modelFile;
 long fileLength= 0;
 CString modelPathName = modelPath + _T("//BayesModel.cwn");
 modelFile.Open(modelPathName,CFile::modeCreate|CFile::modeWrite);
 CArchive archive(&modelFile,CArchive::store); 
 categoryName.Serialize(archive);
 featureWord.Serialize(archive);
 categoryProbability.Serialize(archive);
 categoryWordProbability.Serialize(archive);
 archive.Close();
 fileLength = modelFile.GetLength();
 modelFile.Close();
 return fileLength;
}

 

 

 

另外,序列化输入的相关代码如下:

//读取Bayes模型
void BayesTest::ReadBayesModel()
{
 CFile modelFile;
 modelFile.Open(modelPath, CFile::modeRead);
 CArchive archive(&modelFile,CArchive::load);

 categoryName.Serialize(archive);
 featureWord.Serialize(archive);
 categoryProbability.Serialize(archive);
 categoryWordProbability.Serialize(archive);

 archive.Close();
 modelFile.Close();
}

你可能感兴趣的:(算法,mfc,archive)