C# StreamReader文件處理操作解析
C# StreamReader文件處理操作使用的前言,理論上,可以使用FileStream類讀取和顯示文本文件。前面已經(jīng)介紹了這個類。上面顯示NewFile.txt文件的格式不太容易理解,但這并不是FileStream類的問題—— 而在于我們在文本框中顯示結(jié)果所使用的方式。
如果知道某個文件包含文本,通常就可以使用StreamReader 和 StreamWriter類更方便地讀寫它們。這是因為這些類工作的級別比較高,特別適合于讀寫文本。它們執(zhí)行的方法可以根據(jù)流的內(nèi)容,自動檢測出停止讀取文本較方便的位置,特別是:
◆這些類執(zhí)行的方法可以一次讀寫一行文本(StreamReader.ReadLine() 和 StreamWriter.WriteLine())。在讀取文件時,流會自動確定下一個回車符的位置,并在該處停止讀取。在寫入文件時,流會自動把回車符和換行符添加到文本的末尾。
◆使用StreamReader 和 StreamWriter類,就不需要擔(dān)心文件中使用的編碼方式(文本格式)了??赡艿木幋a方式是ASCII(一個字節(jié)表示一個字符)或者基于Unicode的格式,UNICODE、UTF7和 UTF8。Windows 9x系統(tǒng)上的文本文件總是ASCII格式,因為Windows 9x系統(tǒng)不支持Unicode,但Windows NT、2000、XP和2003都支持Unicode,所以文本文件除了包含ASCII數(shù)據(jù)之外,理論上可以包含Unicode、UTF7或 UTF8數(shù)據(jù)。其約定是:如果文件是ASCII格式,就只包含文本。如果是Unicode格式,就用文件的前兩個或三個字節(jié)來表示,這幾個字節(jié)可以設(shè)置為表示文件中格式的值的特定組合。
這些字節(jié)稱為字節(jié)碼標(biāo)記。在使用標(biāo)準(zhǔn)Windows應(yīng)用程序打開一個文件時,例如Notepad 或 WordPad,不需要考慮這個問題,因為這些應(yīng)用程序都支持不同的編碼方法,會自動正確地讀取文件。StreamReader類也是這樣,它可以正確讀取任何格式的文件,而StreamWriter類可以使用任何一種編碼技術(shù)格式化它要寫入的文本。另一方面,如果要使用FileStream類讀取和顯示文本文件,就不必自己處理這個過程了。
C# StreamReader類的特點(diǎn):
StreamReader用于讀取文本文件。用某些方式構(gòu)造一個StreamReader要比構(gòu)造一個FileStream實(shí)例更簡單,因為使用StreamReader時不需要FileStream的一些選項。特別是不需要模式和訪問類型,因為StreamReader只能執(zhí)行讀取操作。除此以外,沒有指定共享許可的直接選項,但StreamReader有兩個新選項:
◆需要指定不同的編碼方法所執(zhí)行的不同操作。可以構(gòu)造一個StreamReader 檢查文件開頭的字節(jié)碼標(biāo)記,確定編碼方法,或者告訴StreamReader該文件使用某個編碼方法。
◆不提供要讀取的文件名,而為另一個流提供引用。
最后一個選項需要解釋一下,因為它涉及到把讀寫數(shù)據(jù)的模型建立在流概念上的另一個優(yōu)點(diǎn)。StreamReader工作在相對比較高的級別上,如果有另一個流在讀取其他源的數(shù)據(jù),就要使用由StreamReader提供的工具來處理這個流,因為這個流包含文本,此時StreamReader就非常有用了??梢园堰@個流的輸出傳送到StreamReader上,這樣,StreamReader就可以讀取和處理任何數(shù)據(jù)源(不僅僅是文件)中的數(shù)據(jù)了。
C# StreamReader讀取文件之文件頭:
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.IO;
C# StreamReader讀取文件實(shí)例:
- StreamReader objReader = new StreamReader(文件路徑);
- string sLine="";
- ArrayList LineList = new ArrayList();
- while (sLine != null)
- {
- sLine = objReader.ReadLine();
- if (sLine != null&&!sLine.Equals(""))
- LineList.Add(sLine);
- }
- objReader.Close();
- return LineList;
C# StreamReader和StreamWriter讀寫文件的操作就向你介紹到這里,希望對你了解和學(xué)習(xí)C# StreamReader類和StreamWriter類寫文件有所幫助。
【編輯推薦】