C# - StreamWriter 正在创建我的文件,但没有内容
本文关键字:文件 我的 StreamWriter 创建 | 更新日期: 2023-09-27 18:35:31
每次有人搜索我的程序时,我都尝试使用 StreamWriter 记录搜索。我可以让StreamWriter编写一个新文件,但它不会创建任何内容。我尝试在谷歌上搜索正确的用途,对我来说,看起来我已经正确地完成了它。如果你能读懂我的代码并告诉我我错在哪里,那么我将非常感激!
StreamWriter write = new StreamWriter("searchLogFile.dat");
write.WriteLine(gameTitle + " === " + string.Format("{0:C}", saleValue));
所以它应该打印一行类似这样的行:"TITLE === $100.00"
您尚未关闭编写器。编写器缓冲数据,因此,如果您只是让它进行垃圾回收而不刷新或关闭它,则文件句柄将被关闭,而无需将数据写入文件。
理想情况下,您应该使用 using
语句执行此操作:
using (StreamWriter write = new StreamWriter("searchLogFile.dat"))
{
write.WriteLine(gameTitle + " === " + string.Format("{0:C}", saleValue));
}
这样,即使引发异常,编写器也会关闭。养成对实现IDisposable
的类型使用 using
语句的习惯。
如果您只想将一个值写入文件,我还建议使用 File.WriteAllText
。您还可以使用接受格式字符串的 TextWriter.WriteLine
重载来简化此代码:
writer.WriteLine("{0} === {1:C"}, gameTitle, saleValue);
或者使用 C# 6:
writer.WriteLine($"{gameTitle} === {saleValue:C}");
或者一气呵成:
File.WriteAllText("searchLogFile.dat", $"{gameTitle} === {saleValue:C}");