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