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