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

C# - StreamWriter Is Creating My File But No Content

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

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

所以它应该打印一行类似于:"TITLE === 0.00"

你还没有关闭写手。 writer 缓冲数据,所以如果你只是让它被垃圾收集而不刷新或关闭它,文件句柄将关闭而不会将数据写入文件。

理想情况下,您应该使用 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}");