gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 22:30:22 25 4
gpt4 key购买 nike

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

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

所以它应该打印一行:“TITLE === $100.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}");

关于C# - StreamWriter 正在创建我的文件但没有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35539236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com