我需要尽可能快地在文本文件中保存六个动态变量,如果关闭电源(或应用程序被杀死),我可以一起访问最后保存的变量版本(不只是一些变量。)
在注册表中编写这六个变量需要~0.1 ms
,这很好。但是,我宁愿避免修改注册表。
我在后台工作循环中尝试了StreamWriter
:
System.IO.StreamWriter file = new System.IO.StreamWriter("test.txt", false);
file.Write("Comma Separated Version of Variables in String");
file.Flush();
file.Close();
1 ms
需要更多的时间,这对我的申请来说很慢!所以,我删除了循环中的第一行和最后一行:
System.IO.StreamWriter file = new System.IO.StreamWriter("test.txt", false);
while (true)
{
file.Write("Comma Separated Version of Variables in String");
file.Flush();
}
file.Close();
现在很棒(~0.007 ms
)!但是,它会将新字符串附加到文件中。如何在不关闭它的情况下覆盖文本文件的第一行(它只有一行)?
编辑:我也尝试了WriteAllText
,但它比上面的代码慢15
倍!
答案 0 :(得分:2)
将流的位置设置为0.
while (true)
{
file.BaseStream.Seek(0, System.IO.SeekOrigin.Begin);
file.WriteLine("Comma Separated Version of Variables in String");
file.Flush();
}