C++文件讀寫操做

C++文件流

fstream  // 文件流
ifstream  // 輸入文件流
ofstream  // 輸出文件流

文件打開方式選項:

ios::in        //供讀,文件不存在則建立(ifstream默認的打開方式)
ios::out       //供寫,文件不存在則建立,若文件已存在則清空原內容(ofstream默認的打開方式)
ios::ate       //文件打開時,指針在文件最後。可改變指針的位置,常和in、out聯合使用
ios::app       //供寫,文件不存在則建立,若文件已存在則在原文件內容後寫入新的內容,指針位置總在最後
ios::trunc     //在讀寫前先將文件長度截斷爲0(默認)
ios::nocreate //文件不存在時產生錯誤,常和in或app聯合使用
ios::noreplace //文件存在時產生錯誤,常和out聯合使用

ios::binary   //二進制格式文件
文件保護方式選擇項:
filebuf::openprot;     //默認的兼容共享方式
filebuf::sh_none;    //獨佔,不共享
filebuf::sh_read;    //讀共享
filebuf::sh_write;   //寫共享

打開文件的方法
調用構造函數時指定文件名和打開模式
fstream f("d:\\12.dat",ios::in|ios::out|ios::binary); //以讀寫方式打開二進制文件
使用Open成員函數
fstream f;
f.open("d:\\12.txt",ios::out); //利用同一對象對多個文件進行操做時要用到open函數
檢查是否成功打開
成功:
    if(f){...}   //對ifstream、ofstream對象可用,fstream對象不可用。
    if(f.good()){...}
失敗:
    if(!f){...}   // !運算符已經重載
    if(f.fail()){...}

文件定位

經過移動文件讀寫指針,可在文件指定位置進行讀寫。
  seekg(絕對位置);      //絕對移動,輸入流操做
  seekg(相對位置,參照位置);  //相對操做
  tellg();          //返回當前指針位置
  seekp(絕對位置);      //絕對移動,輸出流操做
  seekp(相對位置,參照位置);  //相對操做   
  tellp();          //返回當前指針位置
  參照位置:
  ios::beg  = 0       //相對於文件頭
  ios::cur  = 1       //相對於當前位置
  ios::end  = 2       //相對於文件尾

顯示文件內容

文件拷貝


continued……java

相關文章
相關標籤/搜索