文件操作是指对文件的读写操作,而在读写文件前,通常需要先打开文件,完成读写操作后,需要关闭文件。
1、文件的打开:方式按照实现的不同,分为三种:ifstream:支持从本流类(对象)所对应的磁盘文件中读入数据。使用如下:
ifstream <对象名>;
<对象名>.open("文件名");
ofstream:支持从本流类(对象)所对应的磁盘文件中写入数据。使用如下:
ofstream <对象名>;
<对象名>.open("文件名");
fstream:支持从本流类(对象)所对应的磁盘文件中读入和写入数据的双向操作。使用如下:
fstream <对象名>;
<对象名>.open("文件名",模式);
访问模式有:ios::in:以读入方式打开 ios::out:以写入方式打开 ios::ate:打开并指向文件尾 ios::app:用于打开附加数据并添加到文件尾 ios::trunc:若文件存在,则清除其内容 ios::nocreat:若文件不存在,则打开操作失败 ios::noreplace:若文件存在,则打开操作失败 ios::binary:以二进制方式打开。
2、顺序文件的读写操作
get(char &ch);//从文件中读取一个字符
getline(char *pch,int count,char delim='\n');//用来从文件中读取多个字符。其中字符的个数由count指定,delim是读取字符时指定的结束符。
put(char ch);//将字符变量ch存放的字符写到输出文件中。
实例:
fstream infile;
infile.open("C:\\1.txt",ios::in);
if(!infile.is_open())
{
AfxMessageBox(_T("文件没有打开"));
}
CString str1;
while(!infile.eof())
{
char ch;
infile.get(ch);
CString str;
str.Format(_T("%c"),ch);
str1 = str1 + str;
}
AfxMessageBox(str1);
3.CFile类
CFile(LPCTSTR lpszFileName,UINT nOpenFlags)//lpszFileName指定想要操作的文件名称和路径,nOpenFlags指定文件的共享和存取方式。
CFile类用Open函数来创建和打开文件,用Open创建新文件,必须有一个文件名,并且选择一定的打开方式。
virtual BOOL Open(LPCTSTR lpszFileName,UINT nOpenFlags,CFileException *pError = NULL);
lpszFileName:想要操作的文件的名称和路径的字符串。
nOpenFlags:文件的共享和存取方式。
pError:文件异常处理对象的指针。