C# 中的文件处理:I/O 操作 [示例]
C# 提供了广泛的文件操作。这些操作包括打开文件、读写文件。有时您可能希望直接处理文件,这时您可以使用 C# 中提供的文件操作。以下是一些基本的文件操作。
- 读取 – 此操作是基本读取操作,即从文件中读取数据。
- 写入 – 此操作是基本写入操作,即向文件中写入数据。默认情况下,文件中的所有现有内容都将被删除,然后写入新内容。
- 追加 – 此操作也涉及将信息写入文件。唯一区别是文件中的现有数据不会被覆盖。要写入的新数据将被添加到文件末尾。
基本 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 文件中输入以下代码。
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(); } } }
代码解释:
- 首先,我们设置一个字符串变量,其中包含 Example.txt 文件的路径。
- 接下来,我们使用 File.Exists 方法检查文件是否存在。如果文件存在,则返回 true 值。
- 如果得到 true 值且文件确实存在,那么我们将消息“文件存在”写入控制台。
设置上述代码并在 Visual Studio 中执行项目后,您将看到如下输出。
输出:-
从上面的输出中,您可以看到 File.Exists 命令已成功执行,并在控制台窗口中显示了正确的消息。
File.ReadAlllines
该方法用于逐行读取文件中的所有行。然后将这些行存储在字符串数组变量中。让我们看一个例子。在 program.cs 文件中输入以下代码。
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(); } } }
代码解释:
- 首先,我们声明一个字符串数组变量。这将用于存储 File.ReadAllLines 方法返回的结果。
- 接下来,我们使用 File.ReadAllLines 方法从我们的文本文件中读取所有行。然后将结果传递给 lines 变量。
- 由于我们知道我们的文件只包含 2 行,我们可以通过 lines[0] 和 lines[1] 命令访问数组变量的值。
设置上述代码并在使用 Visual Studio 运行项目后,您将看到如下输出。
输出:-
从输出中,您可以看到 File.ReadAllLines 命令从我们的文件 Example.txt 返回了这两行。
File.ReadAllText
此方法用于一次性读取文件中的所有行。然后将这些行存储在字符串变量中。让我们看一个例子。在 program.cs 文件中输入以下代码。
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(); } } }
代码解释:
- 首先,我们声明一个名为 Lines 的字符串变量。这将用于存储 File.ReadAllText 方法返回的结果。
- 接下来,我们使用 File.ReadAllText 方法从我们的文本文件中读取所有行。然后将结果传递给 lines 变量。
- 我们可以直接使用 Console.Writeline 方法显示 Lines 变量的值。
当设置了上述代码,并在 Visual Studio 中运行项目时,您将获得以下输出。
输出:-
从输出中,您可以看到 File.ReadAlltext 命令从我们的文件 Example.txt 返回了这两行。
File.Copy
该方法用于复制现有文件。让我们看一个例子。在 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"; String copypath = @"D:\ExampleNew.txt"; File.Copy(path,copypath); Console.ReadKey(); } } }
代码解释:
- 首先,我们声明一个名为 path 的字符串变量。这将是我们 Example.txt 文件的位置。该文件将是复制操作的源文件。
- 接下来,我们声明一个名为 copypath 的字符串变量。这将是名为 ExampleNew.txt 的新文件的位置。这将是目标文件,其中内容将从源文件 Example.txt 写入。
- 然后我们调用 File.Copy 方法将 Example.txt 文件复制到 ExampleNew.txt 文件。
设置上述代码并在 Visual Studio 中运行项目后,Example.txt 文件将被复制到 ExampleNew.txt。
File.Delete
该方法用于删除现有文件。让我们看一个例子。在 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"; File.Delete(path); Console.ReadKey(); } } }
代码解释:
- 首先,我们声明一个名为 path 的字符串变量。这将是我们 Example.txt 文件的位置。这是将被删除的文件。
- 接下来,我们调用 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 | 该方法用于删除现有文件。 |