我需要一段能读取日志文件中最后n行的代码片段。我从网上找到了下面这段代码。由于日志文件可能非常大,因此我希望避免读取整个文件所带来的开销。有人可以建议性能优化吗?我不想逐个字符地读取文件并更改位置。
var reader = new StreamReader(filePath, Encoding.ASCII);
reader.BaseStream.Seek(0, SeekOrigin.End);
var count = 0;
while (count <= tailCount)
{
if (reader.BaseStream.Position <= 0) break;
reader.BaseStream.Position--;
int c = reader.Read();
if (reader.BaseStream.Position <= 0) break;
reader.BaseStream.Position--;
if (c == '\n')
{
++count;
}
}
var str = reader.ReadToEnd();