使用StreamReader和StreamWriter可高效安全地处理C#文本文件读写,支持逐行读取、指定编码(如GB2312、UTF-8)、追加或覆盖写入,并推荐using语句确保资源释放,避免内存泄漏;读取大文件时应避免ReadToEnd以防内存溢出,路径操作建议用Path.Combine以兼容跨平台,同时注意文件不存在时的异常及目录需预先存在。
读写文本文件在C#里最常用的方式就是 StreamReader 和 StreamWrite
r,它们专为字符流设计,自动处理编码(默认UTF-8),比直接操作字节流更简单安全。
适合逐行或整体读取纯文本内容。推荐用 using 语句确保资源及时释放。
File.ReadAllText("path.txt") 最简,但底层其实封装了 StreamReadernew StreamReader("file.txt", Encoding.GetEncoding("GB2312"))
支持覆盖写入或追加写入,默认也是 UTF-8 编码。同样建议用 using 包裹。
new StreamWriter("log.txt", append: true)
new StreamWriter("data.txt", false, Encoding.UTF8)(false 表示不自动加BOM)避免踩坑的关键细节:
Close() 或 Dispose() —— using 块已帮你搞定ReadToEnd() 一次性加载到内存;优先选 ReadLine() 或分块读取Path.Combine("folder", "file.txt") 替代硬拼 "/" 或 "\"基本上就这些。StreamReader 和 StreamWriter 覆盖了绝大多数文本文件操作场景,用法直接、逻辑清晰,不复杂但容易忽略编码和资源释放的问题。