如何在不关闭文件的情况下清除文件内容
本文关键字:文件 情况下 清除 | 更新日期: 2023-09-27 18:02:40
我有一个文件,由一行组成,我打算经常编写它。正因为如此,我不想一次又一次地关闭和重新打开它。相反,我想调用一些可以擦除文件内容的东西。
完成我所想到的一种方法是这样做:
int i0 = 0;
using (var f = File.OpenWrite("testfile.txt"))
{
while (true)
{
f.Position = 0;
using (var sw = new StreamWriter(f, Encoding.UTF8, 1024, true))
{
if (i0 == 1)
{
sw.WriteLine("short line");
break;
}
if (i0==0)
{
sw.WriteLine("this is a veeeery long test line");
i0++;
}
sw.Flush();
}
}
}
但是,这将导致文件包含以下内容:
short line
eeery long test line
虽然我可以处理这个(我只需要第一行的内容),但感觉很乱。
相反,我想以文件内容结束:short line
有更好的方法吗?
可以使用FileStream.SetLength()
截断,也可以使用FileStream.Position
和/或FileStream.Seek()
移回文件的开头。这将不需要昂贵的流关闭和重新打开。
你可以重写文件:http://msdn.microsoft.com/en-us/library/92e05ft3%28v=vs.110%29.aspx
File.WriteAllLines(String filePath, String[] linesToWrite);