c#在每200个循环后保存Streamwriter而不关闭

本文关键字:Streamwriter 保存 在每 200个 循环 | 更新日期: 2023-09-27 17:51:23

我正在使用StreamWriter将一些数据写入文件。

System.IO.StreamWriter file = new System.IO.StreamWriter(path);
while(something_is_happening && my_flag_is_true)
     file.WriteLine(some_text_goes_Inside);
file.close();

我注意到的是,直到close被调用,没有数据被写入文件。

有什么方法可以在关闭之前保存文件的内容吗

c#在每200个循环后保存Streamwriter而不关闭

为此,您可以使用Flush方法。

System.IO.StreamWriter file = new System.IO.StreamWriter(path);
int counter = 0;
while(something_is_happening && my_flag_is_true)
{
    file.WriteLine(some_text_goes_Inside);
    counter++;
    if(counter < 200) continue;
    file.Flush();
    counter = 0;
}
file.Close();

更多信息欢迎访问MSDN

我想你是在找Flush。

file.Flush();

调用Flush()强制写入缓冲区:

file.Flush();

清除当前写入器的所有缓冲区并产生任何缓存数据要写入底层流。

或设置AutoFlush属性

file.AutoFlush = true;

获取或设置一个值,该值指示StreamWriter是否将刷新的调用后,将其缓冲区保存到底层流StreamWriter.Write .

周期:

System.IO.StreamWriter file = new System.IO.StreamWriter(path);
for (int i = 0; true && flag; i++)
{
    file.WriteLine(some_text_goes_Inside);
    if (i == 200)
    {
        file.Flush();
        i = 0;
    }
}
file.Close();