在这里插入代码片StreamReader 和 StreamWriter 位于 System.IO 命名空间中。当您想要读取或写入基于字符的数据时,这两个类都很有用。这两个类都处理 Unicode 字符。

StreamReader 派生自抽象类“TextReader”,StreamWriter 派生自“TextWriter”。

下表显示了 StreamWriter 类的一些成员。

成员 描述
Close() 关闭当前StreamWriter对象和底层流,此方法相当于Dispose(),用于释放资源。
Write() 此方法用于将数据写入不带换行符的文本流。
WriteLine() 此方法用于将数据写入带有新行的文本流。

下表显示了 StreamReader 类的一些成员。

成员 描述
Close() 关闭当前StreamReader对象和底层流,此方法相当于Dispose(),用于释放资源。
Read() 从输入流读取下一个字符。
ReadLine() 从当前流中读取一行字符并以字符串形式返回数据。
ReadToEnd() 从当前位置读取流直至流的末尾。

让我们看一个例子,我们使用 StreamWriter 将数据写入文件,并使用 StreamReader 从文件读取数据。为了读取或写入文件,File 类提供了 2 个方法,分别返回 StreamReader 或 StreamWriter 对象。

  • CreateText(string filepath):将数据写入文件;返回StreamWriter对象
  • OpenText(string filepath):从文件读取数据;返回一个StreamReader对象

下面介绍如何创建示例。

创建一个名为“StreamWriterAndStreamReaderExample”的新项目,并创建 2 个静态方法,一个用于读取文件,另一个用于写入文件。换句话说,就是 ReadFromFile() 和 WriteToFile()。在程序的源文件中导入 System.IO 命名空间,其中包含处理文件输入和输出的所有类。

在这个例子中,我们将把从 1 到 10 的表写入一个文件中,并使用这些类读取该文件。

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() 方法用于将数据写入文件“table.tbl”,然后使用 ReadFromFile() 方法从该文件读取数据。您可以创建具有任何扩展名的文件,如 .txt、.abc、.tlb 等。为了将数据写入文件,我们创建了一个 StreamWriter 对象,该对象调用 WriteLine() 方法来写入数据;为了从文件读取数据,我们创建了一个 StreamReader 对象,该对象调用 ReadLine() 方法;在读取文件时,数据将存储在 while 循环中的字符串中,直到读取所有数据。在 Main() 中调用这两个方法。

当您运行应用程序时,WriteToFile() 将在指定位置创建一个文件,如下所示。

老生常谈C# 中的 StreamReader 和 StreamWriter 类

用记事本打开此文件来查看内容。

老生常谈C# 中的 StreamReader 和 StreamWriter 类

输出

老生常谈C# 中的 StreamReader 和 StreamWriter 类

希望本文能帮助您理解 C# 中的 StreamReader 和 StreamWriter 类。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。