1、引入fstream。#include <fstream>
2、定义stream对象
1> ofstream fOut;
2>ifstream fIn;
注:
(1) 对象的初始化的时候,需确认好要写入文件的是文本还是二进制。例如,想要写入文件一段视频帧数据,则需要用二进制模式打开,否则写入后的数据,可能会造成文件无法播放。文本模式,在写入文件数据时,系统会自动做一些转换操作。
(2) fOut未打开,不要调用close方法。否则会造成文件写入失败。
例:以下代码看似很正常,执行完毕后,没有报任何错误。但是,打开写入的文件,发现,文件内容为空。如果将fOut.close()这行代码去掉,则正常。
ofstream fOut;
fOut.close();// 此处在文件未打开前,调用了close方法。
fOut.open("d://123.dat", ios::binary);
if( fOut.is_open() ){
fOut.clear();// 此处使用clear方法,清理数据。防止上次打开并关闭后,使用同一对象打开另一文件时,无法读写数据。(主要是fIn的时候,不清理,无法读取新打开的文件。调用fIn.eof()方法,总返回false)
for( int i=0; i<100; i++ )
fOut.write("123\r\n", strlen("123\r\n"));
}
fOut.flush();// 在close时,会自动调用此方法
fOut.close();
(3)读同理
3、读写
读写一般使用fstream类,所有原理同上。
注:使用fstream类创建文件读写对象后,如果先是调用了read函数,则当read读到文件尾部后,再调用write函数,会导致文件数据写入失败。此时,需要调用fstream.clear函数,即可解决写入失败的bug。