如何从.NET中的txt文件的开头删除n个字符?

问题描述 投票:2回答:1

我知道您可以通过File.WriteAllText或类似函数覆盖整个文件内容来实现。但这似乎不是删除开始时几个字符的有效方法,尤其是在文本文件包含数百万个字符的情况下。

有没有一种方法可以使用某些FileStream /其他Stream类函数?

c# .net .net-core f# stream
1个回答
0
投票

根据需要,您可以先进行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());
© www.soinside.com 2019 - 2024. All rights reserved.