摘要
StreamReader類是一種用于從流中讀取字符串的類,它繼承自TextReader類,是C#編程語言中的一個重要類。它的作用是將流中的字符數據轉換為字符串,使程序可以對字符串進行處理。
StreamReader類提供了Read()和ReadLine()兩種方法來從流中讀取數據。Read()方法用于讀取單個字符,它可以指定讀取的字符數量,也可以返回讀取到的字符,并且在到達流的結尾時會自動停止讀取。ReadLine()方法則用于讀取一行字符串,它會讀取流中的每個字符,直到讀取到換行符為止。
StreamReader類還提供了其他一些有用的方法,例如ReadToEnd()方法用于讀取整個流的數據,并將其作為字符串返回。它還提供了SetBaseStream()方法,可以設置基本的流源,以便可以在讀取數據時對其進行處理。
StreamReader類在很多場景中都有廣泛的應用,例如讀取文本文件、網絡通信、日志文件等。它可以讀取不同格式的文件,例如文本文件、二進制文件、網頁文件等,因此在數據處理方面具有非常重要的作用。
在使用StreamReader類時,需要注意的是,如果不正確地使用它,可能會導致一些問題。例如,如果不使用完整的引用類型,則可能會導致程序出現錯誤。因此,在使用StreamReader類時,需要確保代碼的正確性和安全性。
StreamReader類是C#編程語言中非常重要的一個類,它提供了一種方便、高效的方法來從流中讀取字符串,并且可以應用于許多場景。通過正確使用它,可以幫助程序更好地處理數據,并且實現更多的功能。
正文
屬性
|
|
---|
BaseStream | 返回基礎流。 |
CurrentEncoding | 獲取當前 StreamReader 對象正在使用的當前字符編碼。 |
EndOfStream | 獲取一個值,該值指示當前的流位置是否在流結尾。 |
方法
|
|
---|
Close() | 關閉 StreamReader 對象和基礎流,并釋放與讀取器關聯的所有系統資源。 |
CreateObjRef(Type) | 創建一個對象,該對象包含生成用于與遠程對象進行通信的代理所需的全部相關信息。 (繼承自 MarshalByRefObject) |
DiscardBufferedData() | 清除內部緩沖區。 |
Dispose() | 釋放由 TextReader 對象使用的所有資源。 (繼承自 TextReader) |
Dispose(Boolean) | 關閉基礎流,釋放 StreamReader 使用的未托管資源,同時還可以根據需要釋放托管資源。 |
Peek() | 返回下一個可用字符,但不使用它。 |
Read() | 讀取輸入流中的下一個字符并使該字符位置提升一個字符。 |
Read(Char[], Int32, Int32) | 從指定的索引位置開始將來自當前流的指定的最多字符讀到緩沖區。 |
Read(Span<Char>) | 將當前流中的字符讀入范圍。 |
ReadAsync(Char[], Int32, Int32) | 從當前流中異步讀取指定的最大字符,并且從指定的索引位置開始將該數據寫入緩沖區。 |
ReadAsync(Memory<Char>, CancellationToken) | 將當前流中的字符異步讀入內存塊。 |
ReadBlock(Char[], Int32, Int32) | 從當前流中讀取指定的最大字符數并從指定的索引位置開始將該數據寫入緩沖區。 |
ReadBlock(Span<Char>) | 從當前流中讀取字符并將數據寫入緩沖區。 |
ReadBlockAsync(Char[], Int32, Int32) | 從當前流中異步讀取指定的最大字符,并且從指定的索引位置開始將該數據寫入緩沖區。 |
ReadBlockAsync(Memory<Char>, CancellationToken) | 從當前流中異步讀取字符并將數據寫入緩沖區。 |
ReadLine() | 從當前流中讀取一行字符并將數據作為字符串返回。 |
ReadLineAsync() | 從當前流中異步讀取一行字符并將數據作為字符串返回。 |
ReadLineAsync(CancellationToken) | 異步讀取一行字符并將數據作為字符串返回。 (繼承自 TextReader) |
ReadToEnd() | 讀取來自流的當前位置到結尾的所有字符。 |
ReadToEndAsync() | 異步讀取來自流的當前位置到結尾的所有字符并將它們作為一個字符串返回。 |
ReadToEndAsync(CancellationToken) | 異步讀取從當前位置到文本讀取器末尾的所有字符并將它們作為一個字符串返回。 (繼承自 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 編輯過