110,536
社区成员
发帖
与我相关
我的任务
分享
//删除前几行
private void removeTextLine(string filePath, Int32 LineCount)
{
List<string> lines = new List<string>(File.ReadAllLines(filePath, Encoding.Default));//先读取到内存变量
int x = 0;
while (x <= LineCount)
{
lines.RemoveAt(x);//指定删除的行
x++;
}
File.WriteAllLines(filePath, lines.ToArray(), Encoding.Default);//写回硬盤
}
int LineCount = 5;
StreamReader sr = File.OpenText(filePath);
long offset = 0;
while(LineCount-- > 0 )
offset += sr.ReadLine().Length;
sr.Close();
FileStream fsr = File.OpenRead(filePath);
FileStream fsw = File.OpenWrite("E:\\1.txt");
fsr.Seek(offset, SeekOrigin.Begin);
byte [] buf = new byte[102400];
int realCount;
while((realCount = fsr.Read(buf, 0, 102400)) > 0)
fsw.Write(buf, 0, realCount);
fsr.Close();
fsw.Close();
// Win64, 四核 3.1GHZ, 4GB
// 文件大小:2.30G,运行时间:79s