C# 如何读取和写入文本文件_C# 文本文件读写操作指南

来源:这里教程网 时间:2026-02-21 17:29:43 作者:

C# 提供了多种方式来读取和写入文本文件,操作简单且高效。无论是处理配置文件、日志记录还是数据存储,掌握基本的文件读写方法是开发中的必备技能。下面介绍常用的方法和实际用法。

使用 File.ReadAllText 和 File.WriteAllText 读写整个文件

当你需要一次性读取或写入整个文本内容时,File.ReadAllTextFile.WriteAllText 是最简单的选择。

示例:

// 读取整个文本文件
string content = File.ReadAllText("example.txt");
Console.WriteLine(content);
// 写入文本(会覆盖原文件)
File.WriteAllText("example.txt", "这是新写入的内容");

这些方法适用于小文件,因为它们会将全部内容加载到内存中。

使用 File.ReadAllLines 和 File.WriteAllLines 按行操作

如果文件内容按行组织,可以使用 ReadAllLines 读取为字符串数组,或用 WriteAllLines 写入字符串数组。

// 读取所有行
string[] lines = File.ReadAllLines("example.txt");
foreach (string line in lines)
{
    Console.WriteLine(line);
}
// 写入多行
string[] newLines = { "第一行", "第二行", "第三行" };
File.WriteAllLines("example.txt", newLines);

这种方式适合处理结构清晰的文本数据,比如 CSV 或日志条目。

使用 StreamReader 和 StreamWriter 处理大文件或流式操作

对于大文件或需要逐行读写的情况,推荐使用 StreamReaderStreamWriter,它们支持流式处理,节省内存。

// 逐行读取
using (StreamReader reader = new StreamReader("example.txt"))
{
    string line;
    while ((line = reader.ReadLine()) != null)
    {
        Console.WriteLine(line);
    }
}
// 写入并追加内容
using (StreamWriter writer = new StreamWriter("example.txt", true))
{
    writer.WriteLine("新增的一行");
}

注意第二个参数 true 表示追加模式,不传则默认覆盖。

编码问题处理

默认情况下,某些方法使用 UTF-8 编码。如果文件使用其他编码(如 GBK、ASCII),需显式指定。

// 指定编码读取
string content = File.ReadAllText("example.txt", Encoding.GetEncoding("GBK"));
// 指定编码写入
File.WriteAllText("example.txt", "中文内容", Encoding.UTF8);

常见编码类型:UTF8、Unicode、ASCII、GB2312/GBK 等,根据实际需求选择。

基本上就这些。选择合适的方法取决于文件大小、操作频率和是否需要追加等需求。小文件用静态方法方便,大文件用流更安全。

相关推荐