C++ 数据写入文件与读回

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

    软件制作过程常常需要将一些设置参数存成文件以供下次启动时调用,这时运用CArchive类来进行相关操作显得相当方便。

    将数据写入文件:

int data = 123;
CFile mydatafile(L"datasave.h264player", CFile::modeCreate | CFile::modeWrite);//datasave.h264player为文件名,使用的是相对路径,文件被存成在本软件目录下
CArchive mywiringdatafile(&mydatafile, CArchive::store);
mywiringdatafile << data;//将数据写入
mywiringdatafile.Close();
mydatafile.Close();

   

    将数据读回:

int data;
CFile mydatafile(L"datasave.h264player", CFile::modeRead);
CArchive mywiringdatafile(&mydatafile, CArchive::load);
mywiringdatafile >> data;//读回文件的数据到data变量里面
mywiringdatafile.Close();
mydatafile.Close();

    由上面的写读操作也可以发现一个问题,我们必须知道文件的存储结构才能将数据正确地读回,这对于数据起到一种较为初级的保护作用。


    而有些时候我们需要一行一行的读写数据,MFC中我们可以借助CStdioFile类来做这件事

    读取行数据:

CStdioFile mPcbFile;
mPcbFile.Open(L"PCB//JK-M012-V4.apr", CFile::modeRead);//文件打开
CString mLineData;
while (mPcbFile.ReadString(mLineData))
{
	//处理mLineData中读到的行数据
}
mPcbFile.Close();//文件关闭
    写入数据(不带中文):
CStdioFile file;
file.Open(L"writetest.txt", CFile::modeCreate | CFile::modeWrite);//文件打开
CString str=L"asd\n";
file.WriteString(str);//写入行数据
file.WriteString(str);//写入行数据
file.Close();//文件关闭


由于字符集的影响,如果用的是unicode字符集,要用CStdioFile像上面那样来写入中文的话会出现问题,需要包含头文件locale.h,然后将上面带码修改如下:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:将raw中的apk拷贝到/data/data/包名/files/中

下一篇:Android列出系统中所有安装的app的信息