【发布时间】:2013-05-01 13:41:24
【问题描述】:
我想定期读取一个正在写入的日志文件。 该程序将定期读取日志文件内容并对其进行解析以提取一些值。但我不想每次都读取整个文件。
有没有办法从特定行开始读取文件?
例如,在第一次读取时,文件有 100 行。我记下了这个值,下次阅读时,我会从第 100 行开始读取并存储当前文件的行号。
有没有一种有效的方法来做到这一点? 日志文件将增长到大约 100MB,我需要大约每 5 秒读取一次。所以每次都读取完整的文件效率不会那么高。
非常感谢任何建议。
【问题讨论】:
-
你可以看看 Tail.NET codeproject.com/Articles/7568/Tail-NET
-
您可以将文件划分为多个文件或用于此目的的数据库。虽然,我不确定只有 100MB 的文件能带来多少好处。流往往具有起始索引。为什么不直接使用呢?