一般使用fstream 类中所定义的成员函数 open( )和 close( )。
fstream outfile; 定义一个fstream类的对象
outfile.open("f1.txt", ios::out);
或者 fstream outfile("f1.txt", ios::out);
in
以输入(读)方式打开文件
out
以输出(写)方式打开文件
app
以输出追加方式打开文件
ate
文件打开时,文件指针位于文件尾
trune
如果文件存在,将其长度截断为
0
,并清除原有
内容;如果文件不存在,则创建新文件
Binary
以二进制方式打开文件,缺省时为文本方式
nocreate
打开一个已有文件,如该文件不存在,打开失败
noreplace
如果文件存在,除非设置
ios::ate
或
ios::app,
否则打
开操作失败
ios::in|ios::out
以读和写的方式打开文件
ios::out|ios::binary
以二进制写方式打开文件
ios::in|ios::binary
以二进制读方式打开文件
未指定binary方式时,文件都以文本方式打开,若指定了 binary方式,则文件以二进制方式打开.
打开文件的另一种方法 利用fstream的专门读或写的子类
ofstream outfile("f1.txt", ios::out);
写
ifstream istrm("f2.txt");
读
读写完不要忘了关闭文件
infile.close( );
//
例如:
MFC主要读写文件的类是CFile,而CStdioFile类是派生自CFile类的,主要增加了一个按行的方式读取/写入文件每行字符串的功能!别的地方没咋研究!
//CFile读取所有文件到缓冲区:
CFile file;
char buffer[1024];
if(!file.Open("c://aaa.txt",CFile::modeRead))return; //打开aaa这个文件,打开形式为读取
file.Read(buffer,1024); //将文件的内容从开始,读1024到缓冲区(如果想读取不同地方的数据则需要设置游标函数Seek,SeekToBegin,SeekToEnd..)
file.Close();
//CFile写内容到文件
CFile file;
char buffer[1024] = "在此添加要写入文件的字符串!";
if(!file.Open("c://aaa.txt",CFile::Create | CFile::Write))return; //打开aaa这个文件,打开形式为(无此文件则新建)写入
file.Write(buffer,strlen(buffer));
file.Close();
//CStdioFile类的例子:
CStdioFile file;
CString str; //StdioFile可以直接使用字符串类CString的类型
if(!file.Open("c://aaa.txt",CFile::modeRead))return; //打开aaa这个文件,打开形式为读取
file.ReadString(str); //读一行内容到str字符串,注意此时文件的游标将自动设置到下一行的开头位置,所以如果想读下一行还是用file.ReadString(str);
file.Close();
//CFile读取所有文件到缓冲区:
CFile file;
char buffer[1024];
if(!file.Open("c://aaa.txt",CFile::modeRead))return; //打开aaa这个文件,打开形式为读取
file.Read(buffer,1024); //将文件的内容从开始,读1024到缓冲区(如果想读取不同地方的数据则需要设置游标函数Seek,SeekToBegin,SeekToEnd..)
file.Close();
//CFile写内容到文件
CFile file;
char buffer[1024] = "在此添加要写入文件的字符串!";
if(!file.Open("c://aaa.txt",CFile::Create | CFile::Write))return; //打开aaa这个文件,打开形式为(无此文件则新建)写入
file.Write(buffer,strlen(buffer));
file.Close();
//CStdioFile类的例子:
CStdioFile file;
CString str; //StdioFile可以直接使用字符串类CString的类型
if(!file.Open("c://aaa.txt",CFile::modeRead))return; //打开aaa这个文件,打开形式为读取
file.ReadString(str); //读一行内容到str字符串,注意此时文件的游标将自动设置到下一行的开头位置,所以如果想读下一行还是用file.ReadString(str);
file.Close();