转载:c++文件打开和关闭

一般使用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();

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lzhw1985/archive/2008/07/24/2704223.aspx

发布了4 篇原创文章 · 获赞 3 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章