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

Posted

技术标签:

【中文标题】c#每200个循环后保存Streamwriter而不关闭【英文标题】:c# Save Streamwriter after every 200 Cycles without Closing 【发布时间】:2015-06-01 07:37:30 【问题描述】:

我正在使用 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();

我注意到的是,在调用关闭之前,没有数据写入文件。

有什么方法可以在关闭之前将内容保存到文件中。

【问题讨论】:

只是一个提示:你应该使用using 语句作为你的streamwriter。 【参考方案1】:

为此,您可以使用 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

【讨论】:

【参考方案2】:

我想你正在寻找Flush。

file.Flush();

应该可以解决问题。

【讨论】:

【参考方案3】:

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

file.Flush();

清除当前写入器的所有缓冲区并导致任何缓冲数据 写入底层流。

或者设置AutoFlush属性

file.AutoFlush = true;

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

【讨论】:

【参考方案4】:

周期:

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();

【讨论】:

以上是关于c#每200个循环后保存Streamwriter而不关闭的主要内容,如果未能解决你的问题,请参考以下文章

c# StreamWriter 应用中,我想每一行中写入两个不同性质的数据,该怎么写呢

StreamReader和StreamWriter说明

C#中StreamWriter类使用总结

关闭窗体后,利用StreamWriter保存控件里面的数据

C# streamwriter方法写入汉字时乱码

在 C# 中保存二维数组的快速方法