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}");
每次有人搜索我的程序时,我都尝试使用 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}");