天天看點

C#中檔案讀寫類(File、FileStream和StreamReader等類)-簡記

在C#中對檔案的讀寫操作主要有File、FileStream、StreamReader和StreamWriter這些類,但這兩個類對檔案的操作有一些差別,現記錄如下:

File類:

File.ReadAllBytes方法:讀操作,操作位元組,一次性讀取,傳回位元組數組,要使用System.Text.Encoding.GetEncoding(具體編碼格式).GetString(數組)解碼成字元串,或使用System.Text.Encoding.具體編碼格式(Default、UTF-8等).GetString(數組)。

适用性:檔案體積比較小的所有檔案類型。

File.WriteAllBytes方法:寫操作,操作位元組,一次性寫入,檔案不存在時将建立檔案;可使用System.Text.Encoding.具體編碼格式(Default、UTF-8等).GetBytes(string字元串)轉換成位元組數組,再寫入操作。

适用性:檔案體積比較小的所有檔案類型。

File.ReadAllLines方法:讀操作,操作字元,一次性讀取所有行,傳回string數組。

适用性:檔案體積比較小的文本檔案類型。

File.WriteAllLines方法:寫操作,操作字元,一次性寫入多行字元串。

适用性:檔案體積比較小的文本檔案類型。

File.ReadAllText方法:讀操作,操作字元,一次性讀取所有字元串,傳回string字元串。

适用性:檔案體積比較小的文本檔案類型。

File.WriteAllText方法:寫操作,操作字元,一次性寫入一個字元串。

适用性:檔案體積比較小的文本檔案類型。

File.AppendAllLines方法:寫操作,操作字元,向原有檔案中追加資料,一次性追加寫入多行字元串。

适用性:檔案體積比較小的文本檔案類型。

File.AppendAllText方法:寫操作,操作字元,向原有檔案中追加資料,一次性追加寫入一個字元串。

适用性:檔案體積比較小的文本檔案類型。

FileStream類:

主要操作位元組,可操作所有檔案類型,适用于大檔案的操作。示例如下:

FileStream fsRead=new FileStream(@"c:\temp.log",FileMode.OpenOrCreate);

//每次讀取資料長度5MB
byte[] buffer=new byte[5*1024*1024];

//realLength:每次實際讀取的資料長度,因為有時候檔案内容長度可能小于5MB
int realLength=fsRead.Read(buffer,0,buffer.Length);

//将數組資料轉為字元串
string str=System.Text.Encoding.Default.GetString(buffer); 

//或以下方法
 //System.Text.Encoding.Default.GetString(buffer,0,realLength);

//當檔案内容長度大于指定的讀取長度時,使用while循環讀取
//while(fsRead.Read(buffer,0,buffer.Length)>0)    //當最後一次讀取的實際資料長度<=0時,退出循環
//{
//   .......
//}

//釋放檔案流資源
fsRead.Close();
fsRead.Diapose();
           

說明:可以配合BinaryRead和BinaryWriter兩個類讀寫檔案。

StreamReader和StreamWriter:

StreamReader類:讀操作,操作字元,可多次小容量的讀取檔案内容。

适用性:檔案體積比較大的文本檔案類型。

StreamWriter類:寫操作,操作字元,可多次小容量的将内容寫入檔案。

适用性:檔案體積比較大的文本檔案類型。

說明:FileStream、BinaryRead、BinaryWriter、StreamReader和StreamWriter使用時,要注意資源的釋放。