C# 中的文件处理:I/O 操作 [示例]

C# 提供了广泛的文件操作。这些操作包括打开文件、读写文件。有时您可能希望直接处理文件,这时您可以使用 C# 中提供的文件操作。以下是一些基本的文件操作。

  1. 读取 – 此操作是基本读取操作,即从文件中读取数据。
  2. 写入 – 此操作是基本写入操作,即向文件中写入数据。默认情况下,文件中的所有现有内容都将被删除,然后写入新内容。
  3. 追加 – 此操作也涉及将信息写入文件。唯一区别是文件中的现有数据不会被覆盖。要写入的新数据将被添加到文件末尾。

基本 I/O 命令

C# 和 .Net 可以借助多个文件 I/O 命令来处理文件。让我们来看看其中一些命令。在我们的示例中,我们假设 D 驱动器中有一个名为 Example.txt 的文件。
该文件将是一个简单的文本文件,包含如下 2 行:

  • Guru99 – .Net
  • Guru99 -C#

在我们的示例中,我们将创建一个简单的控制台应用程序,并使用我们的文件 I/O 命令。控制台应用程序是之前教程中创建的基本应用程序。在控制台应用程序中,所有代码都写入 program.cs 文件。

File.Exists

File exists 方法用于检查特定文件是否存在。现在让我们看看可以用来检查 Example.txt 文件是否存在或不存在的代码。在 program.cs 文件中输入以下代码。

File.Exists

using System;
using System.Collections.Generic;
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";
   
   if (File.Exists(path))
   {
    Console.WriteLine("File Exists");
   }
   Console.ReadKey();
  }
 }
}

代码解释:

  1. 首先,我们设置一个字符串变量,其中包含 Example.txt 文件的路径。
  2. 接下来,我们使用 File.Exists 方法检查文件是否存在。如果文件存在,则返回 true 值。
  3. 如果得到 true 值且文件确实存在,那么我们将消息“文件存在”写入控制台。

设置上述代码并在 Visual Studio 中执行项目后,您将看到如下输出。

输出:-

File.Exists

从上面的输出中,您可以看到 File.Exists 命令已成功执行,并在控制台窗口中显示了正确的消息。

File.ReadAlllines

该方法用于逐行读取文件中的所有行。然后将这些行存储在字符串数组变量中。让我们看一个例子。在 program.cs 文件中输入以下代码。

File.ReadAlllines

using System;
using System.Collections.Generic;
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";

   String[] lines;
   lines = File.ReadAllLines(path);

   Console.WriteLine(lines[0]);
   Console.WriteLine(lines[1]);

   Console.ReadKey();
  }
 }
}

代码解释:

  1. 首先,我们声明一个字符串数组变量。这将用于存储 File.ReadAllLines 方法返回的结果。
  2. 接下来,我们使用 File.ReadAllLines 方法从我们的文本文件中读取所有行。然后将结果传递给 lines 变量。
  3. 由于我们知道我们的文件只包含 2 行,我们可以通过 lines[0] 和 lines[1] 命令访问数组变量的值。

设置上述代码并在使用 Visual Studio 运行项目后,您将看到如下输出。

输出:-

File.ReadAlllines

从输出中,您可以看到 File.ReadAllLines 命令从我们的文件 Example.txt 返回了这两行。

File.ReadAllText

此方法用于一次性读取文件中的所有行。然后将这些行存储在字符串变量中。让我们看一个例子。在 program.cs 文件中输入以下代码。

File.ReadAllText

using System;
using System.Collections.Generic;
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";

    String lines;
    lines = File.ReadAllText(path);
    Console.WriteLine(lines);
 
    Console.ReadKey();
   }
  }
}

代码解释:

  1. 首先,我们声明一个名为 Lines 的字符串变量。这将用于存储 File.ReadAllText 方法返回的结果。
  2. 接下来,我们使用 File.ReadAllText 方法从我们的文本文件中读取所有行。然后将结果传递给 lines 变量。
  3. 我们可以直接使用 Console.Writeline 方法显示 Lines 变量的值。

当设置了上述代码,并在 Visual Studio 中运行项目时,您将获得以下输出。

输出:-

File.ReadAllText

从输出中,您可以看到 File.ReadAlltext 命令从我们的文件 Example.txt 返回了这两行。

File.Copy

该方法用于复制现有文件。让我们看一个例子。在 program.cs 文件中输入以下代码。

File.Copy

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";

   String copypath = @"D:\ExampleNew.txt";

   File.Copy(path,copypath);

   Console.ReadKey();
   }
  }
}

代码解释:

  1. 首先,我们声明一个名为 path 的字符串变量。这将是我们 Example.txt 文件的位置。该文件将是复制操作的源文件。
  2. 接下来,我们声明一个名为 copypath 的字符串变量。这将是名为 ExampleNew.txt 的新文件的位置。这将是目标文件,其中内容将从源文件 Example.txt 写入。
  3. 然后我们调用 File.Copy 方法将 Example.txt 文件复制到 ExampleNew.txt 文件。

设置上述代码并在 Visual Studio 中运行项目后,Example.txt 文件将被复制到 ExampleNew.txt。

File.Delete

该方法用于删除现有文件。让我们看一个例子。在 program.cs 文件中输入以下代码。

File.Delete

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";

   File.Delete(path);

   Console.ReadKey();
   }
  }
}

代码解释:

  1. 首先,我们声明一个名为 path 的字符串变量。这将是我们 Example.txt 文件的位置。这是将被删除的文件。
  2. 接下来,我们调用 File.Delete 方法删除该文件。

设置上述代码并在 Visual Studio 中运行项目后,Example.txt 文件将被从 D 驱动器中删除。

摘要

  • C# 对文件有许多可以执行的操作。其中大多数操作都属于 File 类。
  • 如果您想从文件读取数据,可以使用 File.ReadAlltext 或 File.ReadAllLines 方法。
文件方法 描述
File.Exists File exists 方法用于检查特定文件是否存在。
File.ReadAlllines 该方法用于逐行读取文件中的所有行。
File.ReadAllText 此方法用于一次性读取文件中的所有行。
File.Copy 该方法用于复制现有文件。
File.Delete 该方法用于删除现有文件。