c++文件打开和关闭

来源:互联网 发布:js实现页面加载效果 编辑:程序博客网 时间:2024/04/29 12:44
一般使用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::ateios::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();