没用调用flush导致的数据保存丢失

时间:2023-03-09 09:04:36
没用调用flush导致的数据保存丢失

在将字符串保存到文件时,我们采有下面的写法,大部分情况下,都可以直接将数据保存到文件中,

using (var fs = System.IO.File.Create(path))
{
  var sw = new StreamWriter(fs, Encoding.UTF8);
  sw.Write(content.Trim());
}

但是,当要保存的数据内容超3MB的时候,再按上面的方法写文件,就可能导致文件内容写入被截断。最后找到问题的原因是,原来没有调Flush()方法,下面正确的调用方法

using (var fs = System.IO.File.Create(path))
{
  var sw = new StreamWriter(fs, Encoding.UTF8);
  sw.Write(content.Trim()); 

  sw.Flush();

}