天天看點

檔案操作的幾種方式

1)使用C語言中的檔案操作:

寫檔案

FILE *p=fopen("1.txt","r");//檔案名為1.txt,打開的方式為隻讀;

fwrite("welcome to the file system",1,strlen("welcome to the file system"),p);//往檔案中寫資料,這裡使用fwrite函數,将一個字元竄

Fclose(p);//這個函數的調用,隻是将要寫入的内容放入緩沖區中,隻有當工程關閉的時候,緩沖區的内容才被寫入檔案

Fflush(p)//這個函數,每當執行一次fwrite操作都會将緩沖區的内容及時寫入檔案中,這樣就不需要關閉工程就能看到檔案中的内容!
           

讀檔案;

FILE *p=fopen("1.txt","r");//打開一個檔案,以隻讀的方式打開

char ch[100];//定義一個數組,接收從檔案中讀取的内容

// memset(ch,0,100);//初始化數組

// fread(ch,1,100,pFile);//讀取檔案中的内容到字元數組中

  char *pBuf;//用指針的形式

  fseek(p,0,SEEK_END);//首先将檔案指針移動到檔案的末尾的位置

  int len=ftell(p);//這個時候,p的位置就是該檔案的占有的總的位元組數

  pBuf=new char[len+1];//根據檔案的大小,配置設定緩沖區的大小

  fseek(p,0,SEEK_SET);//将檔案指針移動到檔案的開始位置,

  fread(pBuf,1,len,p);//開始讀取

  pBuf[len]=0;//由于字元數組的結尾标志是’\0’,實際上就是十進制的0

  Fclose(p);

  MessageBox(pBuf);//消息輸出
           

2)使用c++的輸入輸出流進行操作;

寫檔案:  

ofstream out("2.txt");//構造一個輸出流對象,并初始化(建立一個檔案)

out.write("i am the student",strlen("i am the student"));像檔案中寫入資料

out.close();//關閉檔案
           

讀檔案:

ifstream in("2.txt");構造一個輸入流對象

char ch[100];

memset(ch,0,100);

in.read(ch,100);//讀取檔案内容到緩沖區中

in.close();//關閉

MessageBox(ch);//顯示消息
           

3)使用CFile類進行操作;

寫入檔案

HANDLE hfile;//檔案句柄

hfile=CreateFile("3.txt",GENERIC_WRITE |GENERIC_READ,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);建立一個檔案,各個參數的含義,可以查閱文檔

DWORD dwWrite;實際的輸出的位元組數

WriteFile(hfile,"i am a student",strlen("i am a student"),&dwWrite,NULL);

CloseHandle(hfile);//銷毀檔案句柄
           

讀取檔案:基本上和寫入檔案類似

HANDLE hfile;

hfile=CreateFile("3.txt",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL

,NULL);

char st[100];

    DWORD dword;

memset(st,0,100);

ReadFile(hfile,st,100,&dword,NULL);

CloseHandle(hfile);

MessageBox(st);