0

我正在开发一个日志文件阅读器,它将解析文件并显示节点/电子应用程序中格式良好的表格中的行中的字段。

如果文件很小,我可以逐行读取它们,解析它们,将从每一行提取的字段存储在数据结构中,并允许客户端在整个文件中来回滚动。

由于这些文件可能有几 GB 长,我需要做一些更复杂的事情。

我目前的想法是:

  1. 通过 readline 包读取整个文件。
  2. 跟踪行结束偏移
  3. 读取文件后,解析底部(因此是最近的)大约 50 行,以便我可以提取相关数据并直观地显示
  4. 如果客户想要滚动超过我的 50 行,请使用偏移量转到前一行(通过 fs.read(..))。

另一种方法:

  1. 使用 fs.read() 直接走到最后
  2. 向后工作,直到找到换行符
  3. 如果客户想要滚动文件,请根据需要计算行偏移量

这甚至没有考虑建筑tail -f风格的功能。

我必须至少考虑编码,ascii以及utf8windows vs linux 风格的行尾。

这是很多低层次的工作。

是否有已经提供功能的库?

如果我自己这样做,我在这里没有提到的任何主要警告?我已经 20 年没有做过低级、随机访问、编程了。

4

0 回答 0