老生常談C#?中的?StreamReader?和?StreamWriter?類
在這里插入代碼片StreamReader 和 StreamWriter 位于 System.IO 命名空間中。當(dāng)您想要讀取或?qū)懭牖谧址臄?shù)據(jù)時(shí),這兩個(gè)類都很有用。這兩個(gè)類都處理 Unicode 字符。
StreamReader 派生自抽象類“TextReader”,StreamWriter 派生自“TextWriter”。
下表顯示了 StreamWriter 類的一些成員。
| 成員 | 描述 |
|---|---|
| Close() | 關(guān)閉當(dāng)前StreamWriter對(duì)象和底層流,此方法相當(dāng)于Dispose(),用于釋放資源。 |
| Write() | 此方法用于將數(shù)據(jù)寫(xiě)入不帶換行符的文本流。 |
| WriteLine() | 此方法用于將數(shù)據(jù)寫(xiě)入帶有新行的文本流。 |
下表顯示了 StreamReader 類的一些成員。
| 成員 | 描述 |
|---|---|
| Close() | 關(guān)閉當(dāng)前StreamReader對(duì)象和底層流,此方法相當(dāng)于Dispose(),用于釋放資源。 |
| Read() | 從輸入流讀取下一個(gè)字符。 |
| ReadLine() | 從當(dāng)前流中讀取一行字符并以字符串形式返回?cái)?shù)據(jù)。 |
| ReadToEnd() | 從當(dāng)前位置讀取流直至流的末尾。 |
讓我們看一個(gè)例子,我們使用 StreamWriter 將數(shù)據(jù)寫(xiě)入文件,并使用 StreamReader 從文件讀取數(shù)據(jù)。為了讀取或?qū)懭胛募?,F(xiàn)ile 類提供了 2 個(gè)方法,分別返回 StreamReader 或 StreamWriter 對(duì)象。
- CreateText(string filepath):將數(shù)據(jù)寫(xiě)入文件;返回StreamWriter對(duì)象
- OpenText(string filepath):從文件讀取數(shù)據(jù);返回一個(gè)StreamReader對(duì)象
下面介紹如何創(chuàng)建示例。
創(chuàng)建一個(gè)名為“StreamWriterAndStreamReaderExample”的新項(xiàng)目,并創(chuàng)建 2 個(gè)靜態(tài)方法,一個(gè)用于讀取文件,另一個(gè)用于寫(xiě)入文件。換句話說(shuō),就是 ReadFromFile() 和 WriteToFile()。在程序的源文件中導(dǎo)入 System.IO 命名空間,其中包含處理文件輸入和輸出的所有類。
在這個(gè)例子中,我們將把從 1 到 10 的表寫(xiě)入一個(gè)文件中,并使用這些類讀取該文件。
Program.cs
class Program
{
static void Main(string[] args)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.Title = "StreamReader and StreamWriter";
WriteToFile();
ReadFromFile();
Console.ForegroundColor = ConsoleColor.Gray;
}
public static void ReadFromFile()
{
using (StreamReader sr = File.OpenText(@"E:\Programming Practice\CSharp\Console\table.tbl"))
{
string tables = null;
while ((tables = sr.ReadLine()) != null)
{
Console.WriteLine("{0}", tables);
}
Console.WriteLine("Table Printed.");
}
}
public static void WriteToFile()
{
using (StreamWriter sw = File.CreateText(@"E:\Programming Practice\CSharp\Console\table.tbl"))
{
sw.WriteLine("Please find the below generated table of 1 to 10");
sw.WriteLine("");
for (int i = 1; i <= 10; i++)
{
for (int j = 1; j <= 10; j++)
{
sw.WriteLine("{0}x{1}= {2}", i, j, (i * j));
}
sw.WriteLine("==============");
}
Console.WriteLine("Table successfully written on file.");
}
}
}在前面的例子中,WriteToFile() 方法用于將數(shù)據(jù)寫(xiě)入文件“table.tbl”,然后使用 ReadFromFile() 方法從該文件讀取數(shù)據(jù)。您可以創(chuàng)建具有任何擴(kuò)展名的文件,如 .txt、.abc、.tlb 等。為了將數(shù)據(jù)寫(xiě)入文件,我們創(chuàng)建了一個(gè) StreamWriter 對(duì)象,該對(duì)象調(diào)用 WriteLine() 方法來(lái)寫(xiě)入數(shù)據(jù);為了從文件讀取數(shù)據(jù),我們創(chuàng)建了一個(gè) StreamReader 對(duì)象,該對(duì)象調(diào)用 ReadLine() 方法;在讀取文件時(shí),數(shù)據(jù)將存儲(chǔ)在 while 循環(huán)中的字符串中,直到讀取所有數(shù)據(jù)。在 Main() 中調(diào)用這兩個(gè)方法。
當(dāng)您運(yùn)行應(yīng)用程序時(shí),WriteToFile() 將在指定位置創(chuàng)建一個(gè)文件,如下所示。

用記事本打開(kāi)此文件來(lái)查看內(nèi)容。

輸出

希望本文能幫助您理解 C# 中的 StreamReader 和 StreamWriter 類。
到此這篇關(guān)于老生常談C# 中的 StreamReader 和 StreamWriter 類的文章就介紹到這了,更多相關(guān)C# StreamReader 和 StreamWriter 類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Winform利用分頁(yè)控件實(shí)現(xiàn)導(dǎo)出PDF文檔功能
當(dāng)前的Winform分頁(yè)控件中,當(dāng)前導(dǎo)出的數(shù)據(jù)一般使用Excel來(lái)處理,但是有框架的使用客戶希望分頁(yè)控件能夠直接導(dǎo)出PDF,所以本文整理了一下分頁(yè)控件導(dǎo)出PDF的處理過(guò)程,分享一下2023-03-03
C#使用Socket實(shí)現(xiàn)局域網(wǎng)聊天
這篇文章主要為大家詳細(xì)介紹了C#使用Socket實(shí)現(xiàn)局域網(wǎng)聊天的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
C#實(shí)現(xiàn)Excel轉(zhuǎn)PDF時(shí)設(shè)置內(nèi)容適應(yīng)頁(yè)面寬度
將Excel轉(zhuǎn)為PDF格式時(shí),通常情況下轉(zhuǎn)換出來(lái)的PDF頁(yè)面都是默認(rèn)的寬度大小。所以本文提供了C#實(shí)現(xiàn)Excel轉(zhuǎn)PDF時(shí)設(shè)置內(nèi)容適應(yīng)頁(yè)面寬度的示例代碼,需要的可以參考一下2022-04-04
C#調(diào)用C++ DLL bool返回值始終為true的問(wèn)題
這篇文章主要介紹了C#調(diào)用C++ DLL bool返回值始終為true的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
c#關(guān)于JWT跨域身份驗(yàn)證的實(shí)現(xiàn)代碼
這篇文章主要介紹了c#關(guān)于JWT跨域身份驗(yàn)證的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10

