C# - StreamWriter正在创建我的文件但没有内容

时间:2016-02-21 17:14:42

标签: c# streamwriter

每次有人搜索我的程序时,我都会尝试使用StreamWriter记录搜索。我可以让StreamWriter写一个新文件,但它不会创建任何内容。我已经尝试过谷歌搜索正确使用,对我来说,看起来我已经正确地完成了它。如果你能阅读我的代码并告诉我哪里错了,那么我将非常感激!

StreamWriter write = new StreamWriter("searchLogFile.dat");
write.WriteLine(gameTitle + " === " + string.Format("{0:C}", saleValue));

所以它应该打印一行代码:" TITLE === $ 100.00"

1 个答案:

答案 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}}