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

来自:网络
时间:2024-09-10
阅读:

在这里插入代码片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 类。

返回顶部
顶部