C# 中的 StreamReader 和 StreamWriter 类

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

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢.锋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值