我有一个for循环(由计时器减速),每秒循环将日期保存在文本文件中。但如果我在流程结束前关闭程序,文本文件仍然存在。
事情是,当我在课堂上,我没有足够的时间浪费等待程序结束,同时我需要暂停线程,所以我不能只使用一个较小的循环并且没有足够的时间来暂停和恢复。有没有办法在每次循环后保存文件?所以每当我退出(基于表单的应用程序)我会在那里有一些数据?
答案 0 :(得分:1)
将StreamWriter.AutoFlush属性设置为true
。这将使得writer在每次调用StreamWriter.Write后将其缓冲区刷新到底层文件流。
using(var writer = File.AppendText("fileName"))
{
writer.AutoFlush = true;
foreach(string line in lines)
writer.WriteLine(line);
}
答案 1 :(得分:0)
也许你可以有另一个循环(也有一个时间较短的计时器),它总能保存数据。
答案 2 :(得分: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:\\...")