在.net/C#中以最佳方式逐行读取文本文件,同时保持最后n行读取,可以使用以下方法:
string filePath = "path/to/file.txt";
int n = 10; // 保留最后10行
Queue<string> lines = new Queue<string>();
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
lines.Enqueue(line);
if (lines.Count > n)
{
lines.Dequeue();
}
}
}
// lines中存储了最后n行的内容
foreach (string line in lines)
{
Console.WriteLine(line);
}
string filePath = "path/to/file.txt";
int n = 10; // 保留最后10行
Queue<string> lines = new Queue<string>(File.ReadLines(filePath).Skip(Math.Max(0, File.ReadLines(filePath).Count() - n)));
// lines中存储了最后n行的内容
foreach (string line in lines)
{
Console.WriteLine(line);
}
这两种方法都使用了一个队列来存储最后n行的内容。每读取一行文本,将其加入队列,并检查队列的大小是否超过n,如果超过则移除队列头部的元素。最后,遍历队列中的元素即可输出最后n行的内容。
推荐的腾讯云相关产品:腾讯云对象存储(COS),用于存储和管理文件、图片、视频等各种类型的数据。产品介绍链接地址:https://cloud.tencent.com/product/cos
领取专属 10元无门槛券
手把手带您无忧上云