跳到主要内容

C# 文件打开与关闭

在 C# 编程中,文件处理是一个常见的任务。无论是读取配置文件、写入日志,还是处理用户上传的文件,都需要掌握如何打开和关闭文件。本文将详细介绍如何在 C# 中打开和关闭文件,并提供实际案例帮助你理解这些概念。

文件处理的基本概念

在 C# 中,文件处理通常涉及以下几个步骤:

  1. 打开文件:通过指定文件路径和访问模式(如读取、写入或追加)来打开文件。
  2. 操作文件:读取文件内容或向文件中写入数据。
  3. 关闭文件:完成文件操作后,关闭文件以释放系统资源。
备注

文件操作完成后,务必关闭文件。未关闭的文件可能会导致资源泄漏或数据损坏。

打开文件

在 C# 中,可以使用 FileStream 类来打开文件。FileStream 提供了多种构造函数,允许你指定文件的路径、访问模式和其他选项。

示例:打开文件并读取内容

以下代码展示了如何打开一个文件并读取其内容:

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string filePath = "example.txt";

// 打开文件
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[1024];
int bytesRead;

// 读取文件内容
while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) > 0)
{
Console.WriteLine(Encoding.UTF8.GetString(buffer, 0, bytesRead));
}
} // 文件自动关闭
}
}

在这个示例中,我们使用 FileStream 类打开了一个名为 example.txt 的文件,并以只读模式访问它。using 语句确保文件在使用完毕后自动关闭。

提示

使用 using 语句可以确保文件在使用完毕后自动关闭,即使发生异常也是如此。

关闭文件

在 C# 中,关闭文件可以通过调用 FileStream 对象的 Close 方法来实现,或者使用 using 语句自动关闭文件。

手动关闭文件

如果你没有使用 using 语句,可以手动调用 Close 方法来关闭文件:

csharp
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
try
{
// 操作文件
}
finally
{
fs.Close(); // 手动关闭文件
}
警告

手动关闭文件时,务必在 finally 块中调用 Close 方法,以确保文件在发生异常时也能被关闭。

实际应用场景

场景:读取配置文件

假设你有一个配置文件 config.txt,其中包含一些应用程序的设置。你可以使用以下代码读取该文件的内容:

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string configFilePath = "config.txt";

// 打开配置文件
using (FileStream fs = new FileStream(configFilePath, FileMode.Open, FileAccess.Read))
{
using (StreamReader reader = new StreamReader(fs))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
} // 文件自动关闭
}
}

在这个场景中,我们使用 StreamReader 类逐行读取配置文件的内容,并在控制台中输出。

场景:写入日志文件

另一个常见的场景是将日志信息写入文件。以下代码展示了如何打开一个日志文件并写入日志信息:

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string logFilePath = "log.txt";

// 打开日志文件(如果文件不存在则创建)
using (FileStream fs = new FileStream(logFilePath, FileMode.Append, FileAccess.Write))
{
using (StreamWriter writer = new StreamWriter(fs))
{
writer.WriteLine($"{DateTime.Now}: Application started.");
}
} // 文件自动关闭
}
}

在这个场景中,我们使用 FileMode.Append 模式打开文件,以便在文件末尾追加日志信息。

总结

在 C# 中,文件处理是一个基础但非常重要的任务。通过使用 FileStream 类,你可以轻松地打开、读取、写入和关闭文件。使用 using 语句可以确保文件在使用完毕后自动关闭,避免资源泄漏。

注意

始终确保在文件操作完成后关闭文件,以避免资源泄漏和数据损坏。

附加资源与练习

  • 练习 1:编写一个程序,读取一个文本文件并统计其中的行数。
  • 练习 2:编写一个程序,将用户输入的内容追加到一个日志文件中。
  • 参考文档C# 文件与流 I/O

通过本文的学习,你应该已经掌握了如何在 C# 中打开和关闭文件。继续练习这些概念,你将能够更熟练地处理文件操作。