C#文件操作(三)

前面我們介紹過FileStream流,它是專門以字節形式處理的字節流。對於文本文件處理上不太方便,所以下面講解一下用於文本文件處理中經常使用到的StreamReder和StreamWriter流。

一、StreamReader流
StreamReader類用於讀取標準文本文件的各行信息。

1、重載構造函數
StreamReader(Stream) //指定流創建
StreamReader(string) //指定路徑創建
StreamReader(Stream,Encoding) //指定流和文件編碼創建
StreamReader(string,Encoding) //指定路徑和編碼創建

常用的構造函數如下:

string path=@"C:\123.txt";
StreamReader sd=new StreamReader(path);
StreamReader sd2=new StreamReader(path,Encoding.default);

2、常用的方法和屬性
Close //關閉StreamReader流
Equals //判斷兩個流是否相等
Read //讀取一個字符
ReadToEnd //從文件流當前位置一直讀取到文件尾
ReadLine //讀取一行。如果到我輸入流末尾,則爲空引用

3、過程
StreamReader讀取文本文件首先會利用File.OpenRead打開文件產生FileStream流,再通過StreamReader對FileStream將數據輸出到窗口或窗體控件上

二、StreamWriter
與StreamReader相反,StreamWriter是對文件進行寫操作的。

1、構造函數
StreamWriter(Stream) ; //指定流創建
StreamWriter(String) //指定路徑創建
StreamWriter(Stream,Encoding) //指定流和編碼創建
StreamWriter(String,bool append) //指定路徑和是否追加在文件後創建

常用的構造函數如下:

string path=@"123.txt";
StreamWriter sw=new StreamWriter(path);
StreamWriter sw2=new StreamWriter(path,true);   //指定路徑打開,並追加到文件後面

注意的追加的問題,
如果文件存在,但是不追加則文件寫入時會從第一個字符開始改寫原有文件。
如果文件存在,同時也追加的話,會從相應的文件後面追加字符串。
如果文件不存在,則會直接創建文件。

舉個例子,如果123.txt的內容爲:ascdefghijklmnopqrstuvwxyz
如果追加,寫入的字符串爲1234567,則最終123.txt內容爲ascdefghijklmnopqrstuvwxyz1234567
如果不追加,寫入的字符串爲1234567,則最終的123.txt內容爲1234567hijklmnopqrstuvwxyz1234567

2、常用的方法和屬性
Close //關閉流
Equals //判斷流是否相等
Write //寫入流,不加換行符,可以寫入任何基本類型100,3.1415,‘a’,“asdasfad”,true等都可以

WriteLine //寫入流,追加換行符,可以寫入任何基本類型100,3.1415,‘a’,“asdasfad”,true等都可以

實例:

StreamWriter sw = new StreamWriter(@"C:\1111.txt",false);
sw.WriteLine(@"zheshiyiduan ceshi 
de cengxu ");
sw.Write(@"1234567
823456789");
sw.Write(1024);
sw.WriteLine(2048);

sw.Close();

3、StreamWriter操作過程
首先通過File類的OpenWrite建立一個寫入文件流,然後通過StreamWriter的WriterLine方法將窗口或控件中的文本框的文本寫入到該流中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章