日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# StreamReader类和StreamWriter类

發布時間:2023/12/4 C# 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# StreamReader类和StreamWriter类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先看看 StreamReader,將前面的示例轉換為讀取文件以使用 StreamReader。它現在看起來容易得多。StreamReader 的構造函數接收FileStream。使用 EndOfStream 屬性可以檢查文件的末尾,使用ReadLine 方法讀取文本行:

public static void ReadFileUsingReader(string fileName) {var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);using?(var?reader?=?new?StreamReader(stream)){while?(!reader.EndofStream){string line = reader.ReadLine(); Console.WriteLine(line);}} }

不再需要處理字節數組和編碼。然而注意,StreamReader 默認使用 UTF-8 編碼。指定另一個構造函數,可以讓 StreamReader 使用文件中序言定義的編碼:

var?reader?=?new?StreamReader(stream,?detectEncodingFromByteOrderMarks:?true);

也可以顯式地指定編碼:

var reader = new StreamReader(stream, Encoding.Unicode);

其他構造函數允許設置要使用的緩沖區;默認為 1024 個字節。此外,還可以指定關閉讀取器時不應該關閉底層流。默認情況下,關閉讀取器時(使用 Dispose 方法),會關閉底層流。

不顯式實例化新的 StreamReader,而可以使用 File 類的 OpenText 方法創建StreamReader:

var reader = File.OpenText(fileName);

對于讀取文件的代碼片段,該文件使用 ReadLine 方法逐行讀取。StreamReader還允許在流中使用 ReadToEnd 從光標的位置讀取完整的文件:

string content = reader.ReadToEnd();

StreamReader 還允許把內容讀入一個字符數組。這類似于 Stream 類的 Read 方法;它不讀入字節數組,而是讀入 char 數組。記住,char 類型使用兩個字節。這適合于 16 位 Unicode,但不適合于 UTF-8,其中,一個字符的長度可以是 1 至 6 個字節:

int nChars = 100; char[] charArray = new char[nChars]; int nCharsRead = reader.Read(charArray, 0, nChars);

StreamWriter 的工作方式與 StreamReader 相同,只是 StreamWriter 僅用于寫入文件(或寫入另一個流)。下面的代碼片段傳遞 FileStream,創建了一個 StreamWriter。然后把傳入的字符串數組寫入流:

public?static?void?WritefileUsingWriter(string?fileName,?string[]?lines) {var?outputStream?= File.OpenWrite(fileName);?using?(var?writer?=?new?StreamWriter(outputStream))?{byte[] preamble = Encoding.UTF8.GetPreamble();outputStream.Write(preamble,?0,?preamble.Length);??writer.Write(lines);} }

記住,StreamWriter 默認使用 UTF-8 格式寫入文本內容。通過在構造函數中設置 Encoding 對象,可以定義替代的內容。另外,類似于 StreamReader 的構造函數,StreamWriter 允許指定緩沖區的大小,以及關閉寫入器時是否不應該關閉底層流。

StreamWriter 的 Write() 方法定義了 17 個重載版本,允許傳遞字符串和一些 .NET 數據類型。請記住,使用傳遞 .NET 數據類型的方法,這些都會使用指定的編碼變成字符串。

?微信公眾號?

Dotnet講堂

總結

以上是生活随笔為你收集整理的C# StreamReader类和StreamWriter类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。