摘要
StreamReader類是一種用于從流中讀取字符串的類,它繼承自TextReader類,是C#編程語言中的一個重要類。它的作用是將流中的字符數(shù)據(jù)轉(zhuǎn)換為字符串,使程序可以對字符串進(jìn)行處理。
StreamReader類提供了Read()和ReadLine()兩種方法來從流中讀取數(shù)據(jù)。Read()方法用于讀取單個字符,它可以指定讀取的字符數(shù)量,也可以返回讀取到的字符,并且在到達(dá)流的結(jié)尾時會自動停止讀取。ReadLine()方法則用于讀取一行字符串,它會讀取流中的每個字符,直到讀取到換行符為止。
StreamReader類還提供了其他一些有用的方法,例如ReadToEnd()方法用于讀取整個流的數(shù)據(jù),并將其作為字符串返回。它還提供了SetBaseStream()方法,可以設(shè)置基本的流源,以便可以在讀取數(shù)據(jù)時對其進(jìn)行處理。
StreamReader類在很多場景中都有廣泛的應(yīng)用,例如讀取文本文件、網(wǎng)絡(luò)通信、日志文件等。它可以讀取不同格式的文件,例如文本文件、二進(jìn)制文件、網(wǎng)頁文件等,因此在數(shù)據(jù)處理方面具有非常重要的作用。
在使用StreamReader類時,需要注意的是,如果不正確地使用它,可能會導(dǎo)致一些問題。例如,如果不使用完整的引用類型,則可能會導(dǎo)致程序出現(xiàn)錯誤。因此,在使用StreamReader類時,需要確保代碼的正確性和安全性。
StreamReader類是C#編程語言中非常重要的一個類,它提供了一種方便、高效的方法來從流中讀取字符串,并且可以應(yīng)用于許多場景。通過正確使用它,可以幫助程序更好地處理數(shù)據(jù),并且實現(xiàn)更多的功能。
正文
屬性
|
|
---|
BaseStream | 返回基礎(chǔ)流。 |
CurrentEncoding | 獲取當(dāng)前 StreamReader 對象正在使用的當(dāng)前字符編碼。 |
EndOfStream | 獲取一個值,該值指示當(dāng)前的流位置是否在流結(jié)尾。 |
方法
|
|
---|
Close() | 關(guān)閉 StreamReader 對象和基礎(chǔ)流,并釋放與讀取器關(guān)聯(lián)的所有系統(tǒng)資源。 |
CreateObjRef(Type) | 創(chuàng)建一個對象,該對象包含生成用于與遠(yuǎn)程對象進(jìn)行通信的代理所需的全部相關(guān)信息。 (繼承自 MarshalByRefObject) |
DiscardBufferedData() | 清除內(nèi)部緩沖區(qū)。 |
Dispose() | 釋放由 TextReader 對象使用的所有資源。 (繼承自 TextReader) |
Dispose(Boolean) | 關(guān)閉基礎(chǔ)流,釋放 StreamReader 使用的未托管資源,同時還可以根據(jù)需要釋放托管資源。 |
Peek() | 返回下一個可用字符,但不使用它。 |
Read() | 讀取輸入流中的下一個字符并使該字符位置提升一個字符。 |
Read(Char[], Int32, Int32) | 從指定的索引位置開始將來自當(dāng)前流的指定的最多字符讀到緩沖區(qū)。 |
Read(Span<Char>) | 將當(dāng)前流中的字符讀入范圍。 |
ReadAsync(Char[], Int32, Int32) | 從當(dāng)前流中異步讀取指定的最大字符,并且從指定的索引位置開始將該數(shù)據(jù)寫入緩沖區(qū)。 |
ReadAsync(Memory<Char>, CancellationToken) | 將當(dāng)前流中的字符異步讀入內(nèi)存塊。 |
ReadBlock(Char[], Int32, Int32) | 從當(dāng)前流中讀取指定的最大字符數(shù)并從指定的索引位置開始將該數(shù)據(jù)寫入緩沖區(qū)。 |
ReadBlock(Span<Char>) | 從當(dāng)前流中讀取字符并將數(shù)據(jù)寫入緩沖區(qū)。 |
ReadBlockAsync(Char[], Int32, Int32) | 從當(dāng)前流中異步讀取指定的最大字符,并且從指定的索引位置開始將該數(shù)據(jù)寫入緩沖區(qū)。 |
ReadBlockAsync(Memory<Char>, CancellationToken) | 從當(dāng)前流中異步讀取字符并將數(shù)據(jù)寫入緩沖區(qū)。 |
ReadLine() | 從當(dāng)前流中讀取一行字符并將數(shù)據(jù)作為字符串返回。 |
ReadLineAsync() | 從當(dāng)前流中異步讀取一行字符并將數(shù)據(jù)作為字符串返回。 |
ReadLineAsync(CancellationToken) | 異步讀取一行字符并將數(shù)據(jù)作為字符串返回。 (繼承自 TextReader) |
ReadToEnd() | 讀取來自流的當(dāng)前位置到結(jié)尾的所有字符。 |
ReadToEndAsync() | 異步讀取來自流的當(dāng)前位置到結(jié)尾的所有字符并將它們作為一個字符串返回。 |
ReadToEndAsync(CancellationToken) | 異步讀取從當(dāng)前位置到文本讀取器末尾的所有字符并將它們作為一個字符串返回。 (繼承自 TextReader) |
讀取文件
StreamReader reader = new StreamReader("d:\\a.log");
var ret = reader.ReadToEnd();
reader.Close();
MessageBox.Show(ret);
按行讀取
StreamReader reader = new StreamReader("d:\\a.log");
string line = "";string lines = "";
while ((line = reader.ReadLine()) != null)
{
lines+=line;}reader.Close();
MessageBox.Show(lines);
該文章在 2024/2/7 23:23:10 編輯過