我需要将数据写入c中的一个文件,但不知何故,它显示成功,但文件是空的
本文关键字:文件 何故 成功 显示 一个 数据 | 更新日期: 2023-09-27 18:27:00
Hello这是我正在尝试的代码:如果该文件存在,请附加到该文件,否则创建一个新文件。我需要逐行写入数据
FileExists = File.Exists(NewFileName);
if (FileExists = false)
{
using (fs =new FileStream(NewFileName, FileMode.Create))
{
sw = new StreamWriter(fs);
MessageBox.Show(Record);
sw.WriteLine(Record);
fs.Close();
}
}
else
{
using (fd = new FileStream(NewFileName, FileMode.Append))
{
sw = new StreamWriter(fd);
MessageBox.Show(Record);
sw.WriteLine(Record,true);
}
}
}
这是因为您的代码从未进入FileExists = false
分支:这是一个赋值,而不是比较。
您可以添加一个额外的=
使其成为比较(即使其成为FileExists == false
),但检查条件对立面的惯用方法是使用一元运算符!
。
按以下方式更改条件以使其工作:
if (!FileExists)
...
此外,您忘记关闭或刷新StreamWriter
。
您可以使用三元运算符来统一两个分支,如下所示:
using (fs =new FileStream(NewFileName, FileExists ? FileMode.Append : FileMode.Create)) {
sw = new StreamWriter(fs);
MessageBox.Show(Record);
sw.WriteLine(Record);
sw.Close(); // <<== Add this line
fs.Close();
}