C# 文本文件的讀寫(xiě)
C# 文本文件的讀寫(xiě)
StreamReader 和 StreamWriter 類用于文本文件的數(shù)據(jù)讀寫(xiě)。這些類從抽象基類 Stream 繼承,Stream 支持文件流的字節(jié)讀寫(xiě)。
StreamReader 類
StreamReader 類繼承自抽象基類 TextReader,表示閱讀器讀取一系列字符。
下表列出了 StreamReader 類中一些常用的方法:
序號(hào) | 方法 & 描述 |
---|---|
1 | public override void Close()關(guān)閉 StreamReader 對(duì)象和基礎(chǔ)流,并釋放任何與讀者相關(guān)的系統(tǒng)資源。 |
2 | public override int Peek()返回下一個(gè)可用的字符,但不使用它。 |
3 | public override int Read()從輸入流中讀取下一個(gè)字符,并把字符位置往前移一個(gè)字符。 |
如需查看完整的方法列表,請(qǐng)?jiān)L問(wèn)微軟的 C# 文檔。
實(shí)例
下面的實(shí)例演示了讀取名為 Jamaica.txt 的文件。文件如下:
Down the way where the nights are gay And the sun shines daily on the mountain top I took a trip on a sailing ship And when I reached Jamaica I made a stop
using System; using System.IO; namespace FileApplication { class Program { static void Main(string[] args) { try { // 創(chuàng)建一個(gè) StreamReader 的實(shí)例來(lái)讀取文件 // using 語(yǔ)句也能關(guān)閉 StreamReader using (StreamReader sr = new StreamReader("c:/jamaica.txt", Encoding.UTF8)) { string line; // 從文件讀取并顯示行,直到文件的末尾 while ((line = sr.ReadLine()) != null) { Console.WriteLine(line); } } } catch (Exception e) { // 向用戶顯示出錯(cuò)消息 Console.WriteLine("The file could not be read:"); Console.WriteLine(e.Message); } Console.ReadKey(); } } }
當(dāng)您編譯和執(zhí)行上面的程序時(shí),它會(huì)顯示文件的內(nèi)容。
StreamWriter 類
StreamWriter 類繼承自抽象類 TextWriter,表示編寫(xiě)器寫(xiě)入一系列字符。
下表列出了 StreamWriter 類中一些常用的方法:
序號(hào) | 方法 & 描述 |
---|---|
1 | public override void Close()關(guān)閉當(dāng)前的 StreamWriter 對(duì)象和基礎(chǔ)流。 |
2 | public override void Flush()清理當(dāng)前編寫(xiě)器的所有緩沖區(qū),使得所有緩沖數(shù)據(jù)寫(xiě)入基礎(chǔ)流。 |
3 | public virtual void Write(bool value)把一個(gè)布爾值的文本表示形式寫(xiě)入到文本字符串或流。(繼承自 TextWriter。) |
4 | public override void Write( char value ) 把一個(gè)字符寫(xiě)入到流。 |
5 | public virtual void Write( decimal value ) 把一個(gè)十進(jìn)制值的文本表示形式寫(xiě)入到文本字符串或流。 |
6 | public virtual void Write( double value ) 把一個(gè) 8 字節(jié)浮點(diǎn)值的文本表示形式寫(xiě)入到文本字符串或流。 |
7 | public virtual void Write( int value ) 把一個(gè) 4 字節(jié)有符號(hào)整數(shù)的文本表示形式寫(xiě)入到文本字符串或流。 |
8 | public override void Write( string value ) 把一個(gè)字符串寫(xiě)入到流。 |
9 | public virtual void WriteLine()把行結(jié)束符寫(xiě)入到文本字符串或流。 |
如需查看完整的方法列表,請(qǐng)?jiān)L問(wèn)微軟的 C# 文檔。
實(shí)例
下面的實(shí)例演示了使用 StreamWriter 類向文件寫(xiě)入文本數(shù)據(jù):
using System; using System.IO; namespace FileApplication { class Program { static void Main(string[] args) { string[] names = new string[] {"Zara Ali", "Nuha Ali"}; using (StreamWriter sw = new StreamWriter("names.txt")) { foreach (string s in names) { sw.WriteLine(s); } } // 從文件中讀取并顯示每行 string line = ""; using (StreamReader sr = new StreamReader("names.txt")) { while ((line = sr.ReadLine()) != null) { Console.WriteLine(line); } } Console.ReadKey(); } } }
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
Zara Ali Nuha Ali
相關(guān)文章
- C++ 信號(hào)處理
- C++ Web編程
- C++ 標(biāo)準(zhǔn)庫(kù)
- C語(yǔ)言 數(shù)組
- C語(yǔ)言 錯(cuò)誤處理
- C語(yǔ)言 命令行參數(shù)
- C語(yǔ)言 標(biāo)準(zhǔn)庫(kù) <float.h>
- C 語(yǔ)言必背代碼例子
- C# 常量
- C# 封裝
- C# 數(shù)組 Array
- C# 接口 Interface
- C# 預(yù)處理器指令
- C# 事件 Event
- C# 匿名方法
- C++ 傳遞指針給函數(shù)
- C++ this 指針
- C++ 賦值運(yùn)算符重載
- C語(yǔ)言 庫(kù)函數(shù) asctime()
- C語(yǔ)言 庫(kù)函數(shù) gmtime()