亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C# Stream 教程:StreamReader、StreamWriter 与示例

在 C# 文件操作中,通常使用流来读取和写入文件。流是在应用程序和文件之间创建的附加层。流用于保证对文件进行流畅的读写操作。

从大文件中读取数据时通常使用流。通过使用流,来自大文件的数据被分解成小块并发送到流中。然后可以从应用程序中读取这些数据块。

将其分解为小块的原因是因为一次性读取大文件会影响性能。如果您要一次性读取 100 MB 文件中的数据,您的应用程序可能会挂起并变得不稳定。最好的方法是使用流将文件分解为可管理的块。

因此,当对文件执行写入操作时,要写入的数据首先写入流中。然后从流中将数据写入文件。读操作也是如此。在读操作中,数据首先从文件传输到流中。然后通过流从应用程序中读取数据。让我们看一个如何使用流进行读写的示例。

在本教程中,您将学习 -

流阅读器

流阅读器用于使用流从文件中读取数据。文件中的数据首先被读入流中。此后应用程序从流中读取数据。

对于我们的示例,我们假设 D 盘中有一个名为 Example.txt 的文件。该文件将是一个简单的文本文件,有 2 行,如下所示

对于我们的示例,我们将创建一个简单的控制台应用程序并使用文件流

让我们看一个如何使用流从文件中读取数据的示例。在program.cs文件中输入以下代码。

using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
    String path = @"D:\Example.txt";

    using (StreamReader sr = File.OpenText(path))
    {
     String s = "";

     while ((s = sr.ReadLine()) != null)
     {
      Console.WriteLine(s);
     }
    }
   Console.ReadKey();
  }
 }
}

代码说明:-

  1. 首先,我们声明一个流读取器对象。流读取器对象在 C# 中用于定义从文件到应用程序的流。每当从文件中读取数据时,数据就会从文件推送到流中。 File.OpenText 用于以只读模式打开文件“Example.txt”。然后将文件的处理程序发送到流读取器对象。
  2. 接下来,我们定义一个临时变量“s”,用于从文件中读取所有数据。
  3. 然后我们使用流读取器方法 ReadLine 从流缓冲区中读取每一行。当我们执行这个操作时,每一行都会首先从文件传输到缓冲区。然后字符串 line 将从缓冲区传输到变量“s”。然后我们将字符串“s”的内容写入控制台。

当上面的代码设置好后,使用 Visual Studio 运行项目,你会得到下面的输出。

输出:-

从输出中,您可以看到 Stream Reader 从文件中读取了这两行。最后,将从流中读取的字符串的行发送到控制台。

流编写器

流写入器用于使用流将数据写入文件。来自应用程序的数据首先写入流中。之后,流将数据写入文件。让我们看一个示例,说明如何使用流从文件中写入数据。在program.cs文件中输入以下代码。

using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
    String path = @"D:\Example.txt";
    
    using (StreamWriter sr = File.AppendText(path))
    {
     sr.WriteLine("Guru99 - ASP.Net");
     sr.Close();

     Console.WriteLine(File.ReadAllText(path));
    }
    Console.ReadKey();
  }
 }
}

代码说明:-

  1. 首先,我们声明一个流写入器对象。流写入器对象在 C# 中用于定义流。然后使用该流将数据从应用程序写入文件。每当需要写入数据时,数据就会从应用程序推送到流中。 File.AppendText 命令用于以追加模式打开文件“Example.txt”。然后将文件的处理程序发送到流写入器对象。
  2. 我们正在使用流写入方法 Writeline 将“Gu​​ru99 – ASP.Net”行写入流。然后从流中将行写入文件。
  3. 然后我们在写入文件后关闭流写入器。当文件不再需要用于写入目的时,关闭文件处理程序通常是一种很好的做法。
  4. 最后,我们再次读取文件的内容并将其写入控制台日志。这是为了检查该行是否已写入文件。

当上面的代码设置好后,使用 Visual Studio 运行项目,你会得到下面的输出。

输出:-

从输出中,您可以看到“Guru99 – ASP.Net”行已成功添加到文件中。在控制台中可以看到所有 3 行文本。

总结


C语言

  1. C++ For 循环与示例
  2. 带有示例的 C++ Switch Case 语句
  3. C++ 动态分配数组的例子
  4. C++ 基本输入/输出:Cout、Cin、Cerr 示例
  5. C++ STL 中的堆栈示例
  6. C++ 结构与示例
  7. 带有示例的 C++ 类和对象
  8. C++ 多态与示例
  9. C++ 中的 std::list 示例
  10. C# 抽象类教程与示例:什么是抽象?
  11. C# 集合教程与示例
  12. Java BufferedReader:如何通过示例在 Java 中读取文件