我知道您可以通过File.WriteAllText或类似函数覆盖整个文件内容来实现。但这似乎不是删除开始时几个字符的有效方法,尤其是在文本文件包含数百万个字符的情况下。
有没有一种方法可以使用某些FileStream /其他Stream类函数?
根据需要,您可以先进行Seek(),然后执行CopyTo()到新的流。
using (FileStream fs1 = new FileStream(FileName1, FileMode.Open, FileAccess.Read))
{
fs1.Seek(N, SeekOrigin.Begin); // N - number of characters from the beginning
using (FileStream fs2 = File.Create(FileName2))
fileStream1.CopyTo(fs2);
}
要删除第一行,请执行
var lines = File.ReadAllLines(FileName1);
File.WriteAllLines(FileName2, lines.Skip(N).ToArray());