一、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(); }
