答案:C#中读写文本文件常用File.ReadAllText/WriteAllText处理小文件,ReadAllLines/WriteAllLines按行操作,大文件推荐streamReader/StreamWriter流式处理,并可指定编码如UTF8、GBK,根据文件大小和需求选择合适方法。

C# 提供了多种方式来读取和写入文本文件,操作简单且高效。无论是处理配置文件、日志记录还是数据存储,掌握基本的文件读写方法是开发中的必备技能。下面介绍常用的方法和实际用法。
使用 File.ReadAllText 和 File.WriteAllText 读写整个文件
当你需要一次性读取或写入整个文本内容时,File.ReadAllText 和 File.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 处理大文件或流式操作
对于大文件或需要逐行读写的情况,推荐使用 StreamReader 和 StreamWriter,它们支持流式处理,节省内存。
// 逐行读取 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 等,根据实际需求选择。
基本上就这些。选择合适的方法取决于文件大小、操作频率和是否需要追加等需求。小文件用静态方法方便,大文件用流更安全。