C#如何将不同单词存入txt文件且不覆盖原有内容
问题原因
- C# 中
StreamWriter(string path)构造方法默认使用覆盖写入模式,你现有代码中首次初始化StreamWriter时没有开启追加参数,程序只要运行到这一行就会直接清空test.txt的原有内容,后续的追加操作是基于已清空的文件执行的,自然无法保留之前存入的单词。 - 现有代码存在冗余逻辑:连续两次向文件写入同一个用户输入的单词,不需要拆分两次写操作。
修复代码
推荐配合using语句自动释放文件流资源,无需手动调用Close方法,避免资源泄漏:
Console.WriteLine("请输入需要被猜测的单词:"); string kitalalszo = Console.ReadLine(); // append参数设为true即启用追加模式,文件不存在时会自动创建 using (StreamWriter sr = new StreamWriter("test.txt", append: true)) { // WriteLine方法自带换行,不需要额外拼接\n sr.WriteLine(kitalalszo); }
简化写法
如果你使用的是.NET 5及以上版本,可以直接调用封装好的静态方法,代码更简洁:
Console.WriteLine("请输入需要被猜测的单词:"); string kitalalszo = Console.ReadLine(); File.AppendAllText("test.txt", kitalalszo + Environment.NewLine);
内容的提问来源于stack exchange,提问作者Mattgwat
相关产品推荐
相关产品推荐

