c 之檔案操作(學習筆記)

2022-03-21 16:32:12 字數 2674 閱讀 2413

file類和directory類

fileinfo類

需要提供乙個檔案路徑來建立乙個fileinfo類例項物件,fileinfo提供很多類似file的方法,在選擇使用file還是fileinfo時應遵循下面的規則:

1、如果要對某個檔案只進行一次複製操作,則可以使用file的靜態方法,因為不必建立物件再呼叫方法,所以會快一些。

2、如果對某個檔案進行很多次操作(如:複製、移動、重新命名等),那麼使用fileinfo會快一些,因為物件在開始就確定了某個檔案,不像file一樣每次都要去尋找檔案

fileinfo、file、directory通用屬性

directoryinfo類

類似於fileinfo類。directoryinfo類的屬性與fileinfo類一樣,只是這些屬性用於目錄

directoryinfo類的專用屬性

使用filestream物件讀取和寫入

一:建立物件

filestream表示在磁碟上指向檔案的流,該類操作的是位元組或位元組陣列,該類可以從指定位置開始讀取

stream類操作的字元資料,比起filestream來更易於使用

建立filestream物件的方式多種多樣,

1、通過建構函式可以建立

filestream中filemode的屬性:

2、file和fileinfo都提供了openread()和openwrite()方法,更易於建立filestream物件

二:檔案指標

使用seek方法可以從檔案的任何地方讀取檔案,當處理大型檔案時非常省時

三:讀取資料

使用filestream類讀取資料不像使用streamreader類讀取資料那樣容易。因為filestream類只能處理原始位元組,所以不嗯呢該直接讀入字串,而streamreader可以直接讀入字串,但是filestream可以用於讀取任何資料檔案。

filestream.read(byte array,int index,int count

);第乙個引數:用於接收filestream物件資料的陣列

第二個引數:位元組陣列中開始寫入資料的位置

第三個引數:指定從檔案中讀取多少個位元組

四:將位元組陣列轉換為字串:

encoding.utf8.getdecoder().getchars方法,引數不做介紹了f12可以檢視到

寫入資料

跟讀入資料很類似

streamwriter物件

streamwriter類允許將字串寫入到檔案中,向filestream物件寫入資料

一:建立streamwriter物件

方法一:

filestream filestream = new filestream(@"log.txt",filemode.createnew);

streamwriter sw= new streamwriter(filestream);

方法二:

streamwriter sw = new streamwriter("log.txt",true); // 第二個引數規定是否追加檔案,false如果檔案存在則改寫該檔案,否則建立乙個新檔案,true:如果檔案存在,保留檔案內容並向後追加,否則建立乙個新檔案,

示例:

streamreader物件

用於從外部資料來源中讀取資料,使用方法同streamwriter

示例:使用readline()讀取文字,這個方法讀取回車符之前的文字,當達到文字末尾時返回null。

streamreader有多個讀取文字的方法,

read()

此方法將字元作為正整數值返回,如果達到了流的結尾處,返回-1.上面的例項中可以這樣編寫:

對於小檔案,可以用readtoend

c 學習筆記之檔案操作

一 文字檔案操作 1.檔案作為輸入資料,也就是從檔案中讀資料。定義乙個檔案物件類 ifstream input titile 後面可以加入其他定義的特性 include include include using namespace std void main input.close delete ...

c 學習筆記之檔案操作

filestream常用的屬性和方法 屬性 canread 判斷當前流是否支援讀取,返回bool值,true表示可以讀取 canwrite 判斷當前流是否支援寫入,返回bool值,true表示可以寫入 方法 read 從流中讀取資料,返回位元組陣列 write 將位元組塊 位元組陣列 寫入該流 se...

c語言學習筆記之檔案操作

1 static 和extern使用 1 修飾區域性變數 static修飾區域性變數特點 延長區域性變數的生命週期 extern不能修飾區域性變數 2 修飾全域性變數 static修飾全域性變數 是乙個內部變數,只能在本檔案使用。extern修飾全域性變數 是乙個外部變數,可以在本檔案和其他檔案使用...