一、CStdioFile Class
1、基类:CStdioFile 的成员函数
1)virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL);
lpszFileName :文件路径+文件名+格式
nOpenFlags :操作模式
常用的操作模式有:modeRead = (int) 0x00000 //只读
modeWrite = (int) 0x00001 //只写
modeReadWrite =(int) 0x00002//读写
modeCreate = (int) 0x01000//创建新文件,该模式只能和modeWrite联用
2)、virtual void WriteString(LPCTSTR lpsz); //写入一个CString类的数据
空格:"\t" 换行:"\n"
3)、virtual BOOL ReadString(CString& rString);//读取一整行得数据,返回类型CString
4)、virtual ULONGLONG Seek(LONGLONG lOff, UINT nFrom); //将当前得文件指针定位
5)、ULONGLONG SeekToEnd(); //将文件指针指向文件得最后
6)、void SeekToBegin(); //将文件指针指向文件得最开始处
7)、virtual ULONGLONG GetPosition() const;//获得当前位置的指针
8)、void Close(); //关闭文件
2、实例
1)、写操作:
void Writetest()
{
CStdioFile file;
CString text; //读取的一行文件内容
//以读写方式打开名为trainsample.xml文件
file.Open(_T("D:\\Scratch File\\C++\\TrainSample\\trainsample.xml"),
CFile::modeReadWrite | CFile::typeText); //modeCreate存在时modeReadWrite不起作用
file.ReadString(text); //读取文本中的第一行数据,指针指向第二行
file.SeekToBegin(); //指针指向文本最开始的位置(指针还是指向第一行的位置,如果没有这句指针会自动移动到第二行的位置)
file.WriteString("xxxxxxxxx''+ "\n"); //替换第一行的内容,指针指向第二行(\n:从当前行跳到新的一行)
file.SeekToEnd(); //文件指针直接指到末尾,指针会指向最后一行数据的最后一个数据的后面
file.WriteString(''\n"); //在文件末尾新的一行添加内容
file.WriteString(" wedwddww" + "\n"); //文件末尾添加新内容
file.Close();//关闭文件
}
2)、读操作:
void Read()
{
CStdioFile file;
CString text; //读取的一行文件内容
LONGLONG Hognowposition = 0; //当前的指针在文件中的位置
file.Open(_T("D:\\Scratch File\\C++\\TrainSample\\trainsample.xml"), CFile::modeRead);
file.ReadString(text); //一次读取整个一行,读取第一行,指针指向下一行
Hognowposition = file.GetPosition(); //一行数据指针增加80
//读取特定位置的数据
file.Seek(Hognowposition, CFile::begin); //指向基于NowPosition位置的指针位置
file.ReadString(text); //读取该位置的一行数据或该行之后的数据
file.Close();
}