fstream庫的檔案讀寫
阿新 • • 發佈:2019-01-01
檔案操作:
開啟,找到位置,讀/寫(讀寫多少),關閉
fstream庫實現:
void get_pic(const char * inFilePath, const char * outFilePath){ //開啟 /*ios::app: //以追加的方式開啟檔案 *ios::ate: //檔案開啟後定位到檔案尾,ios:app就包含有此屬性 *ios::binary: //以二進位制方式開啟檔案,預設的方式是文字方式。兩種方式的區別見前文 *ios::in: //檔案以輸入方式開啟(檔案資料輸入到記憶體) *ios::out: //檔案以輸出方式開啟(記憶體資料輸出到檔案) *ios::nocreate: //不建立檔案,所以檔案不存在時開啟失敗 *ios::noreplace://不覆蓋檔案,所以開啟檔案時如果檔案存在失敗 *ios::trunc: //如果檔案存在,把檔案長度設為0 *用open也可以 in.open( , , ) */ ifstream in(inFilePath,ios::in|ios::binary); ofstream out(outFilePath,ios::out|ios::binary); //獲取檔案長度endP long curP,endP; in.seekg (0, ios::end); endP = in.tellg(); in.seekg (0, ios::beg); //獲取當前操作位置curP curP = in.tellg(); //讀寫 /*ofstream是從記憶體到硬碟,ifstream是從硬碟到記憶體,其實所謂的流緩衝就是記憶體空間; * 類 fstream 的物件同時擁有這兩個函式。它們的原型是: * write ( char * buffer, streamsize size ); * read ( char * buffer, streamsize size ); * 這裡 buffer 是一塊記憶體的地址,用來儲存或讀出資料。引數size 是一個整數值,表示要從快取(buffer)中讀出或寫入的字元數。 * 讀取寫入的過程,都有當前指標指向當前位置 */ in.read(buffer,4096); out.write(buffer,4096); //關閉 in.close(); out.close(); }