C# 文本檔的讀寫

C# 檔的輸入與輸出 C# 檔的輸入與輸出

StreamReaderStreamWriter 類用於文本檔的數據讀寫。這些類從抽象基類 Stream 繼承,Stream 支持檔流的位元組讀寫。

StreamReader 類

StreamReader 類繼承自抽象基類 TextReader,表示閱讀器讀取一系列字元。

下表列出了 StreamReader 類中一些常用的方法

序號方法 & 描述
1public override void Close()
關閉 StreamReader 對象和基礎流,並釋放任何與讀者相關的系統資源。
2public override int Peek()
返回下一個可用的字元,但不使用它。
3public override int Read()
從輸入流中讀取下一個字元,並把字元位置往前移一個字元。

如需查看完整的方法列表,請訪問微軟的 C# 文檔。

實例

下麵的實例演示了讀取名為 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
            {
                // 創建一個 StreamReader 的實例來讀取檔
                // using 語句也能關閉 StreamReader
                using (StreamReader sr = new StreamReader("c:/jamaica.txt"))
                {
                    string line;

                    // 從檔讀取並顯示行,直到檔的末尾
                    while ((line = sr.ReadLine()) != null)
                    {
                        Console.WriteLine(line);
                    }
                }
            }
            catch (Exception e)
            {
                // 向用戶顯示出錯消息

                Console.WriteLine("The file could not be read:");
                Console.WriteLine(e.Message);
            }
            Console.ReadKey();
        }
    }
}

當您編譯和執行上面的程式時,它會顯示檔的內容。

StreamWriter 類

StreamWriter 類繼承自抽象類 TextWriter,表示編寫器寫入一系列字元。

下表列出了 StreamWriter 類中一些常用的方法

序號方法 & 描述
1public override void Close()
關閉當前的 StreamWriter 對象和基礎流。
2public override void Flush()
清理當前編寫器的所有緩衝區,使得所有緩衝數據寫入基礎流。
3public virtual void Write(bool value)
把一個布爾值的文本表示形式寫入到文本字串或流。(繼承自 TextWriter。)
4public override void Write( char value )
把一個字元寫入到流。
5public virtual void Write( decimal value )
把一個十進位值的文本表示形式寫入到文本字串或流。
6public virtual void Write( double value )
把一個 8 位元組浮點值的文本表示形式寫入到文本字串或流。
7public virtual void Write( int value )
把一個 4 位元組有符號整數的文本表示形式寫入到文本字串或流。
8public override void Write( string value )
把一個字串寫入到流。
9public virtual void WriteLine()
把行結束符寫入到文本字串或流。

如需查看完整的方法列表,請訪問微軟的 C# 文檔。

實例

下麵的實例演示了使用 StreamWriter 類向檔寫入文本數據:

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();
        }
    }
}

當上面的代碼被編譯和執行時,它會產生下列結果:

Zara Ali
Nuha Ali

C# 檔的輸入與輸出 C# 檔的輸入與輸出