-2

我有一个 for 循环(由计时器减慢速度),循环每秒将日期保存在文本文件中。但是如果我在进程结束之前关闭程序,文本文件仍然存在。

问题是当我上课时,我没有足够的时间来等待程序结束,同时我需要在某个时候暂停线程,所以我不能只使用较小的循环并且冒险不有足够的时间暂停和恢复。

有没有办法在每次循环后保存文件?所以每当我退出(基于表单的应用程序)时,我会有一些数据吗?

4

3 回答 3

1

StreamWriter.AutoFlush属性设置为true。这将使 writer 在每次调用 StreamWriter.Write 后将其缓冲区刷新到底层文件流。

using(var writer = File.AppendText("fileName"))
{
    writer.AutoFlush = true;
    foreach(string line in lines)
        writer.WriteLine(line);
}
于 2013-01-12T21:28:31.123 回答
0

也许你可以有另一个循环(也有一个时间更短的计时器),它总是保存数据。

于 2013-01-12T21:27:28.617 回答
0

尝试使用它作为保存到文本文件:

它将读取旧文本并将旧文本和新文本保存到其中...

StreamReader sr = new StreamReader(path);
StreamWriter sw = new StreamWriter(path);
string old = sr.ReadToEnd();
sr.Close();
sw.WriteLine(old);
sw.WriteLine(date);
sw.Close();

或者您可以将 StreamWriter 设为公开,并在 Form Closing 事件中将其保存在关闭时... public StreamWriter sr = new StreamWriter("C:\\...")

于 2013-01-12T21:35:33.047 回答