如何解决逐行读取巨大的日志文件并在节点中随机访问?
我正在开发一个日志文件阅读器,它将解析文件并显示节点/电子应用程序中格式良好的表格中的行中的字段。
如果文件很小,我可以逐行读取它们,解析它们,将从每一行提取的字段存储在数据结构中,并允许客户端在整个文件中来回滚动。
我目前的想法是:
- 通过 readline 包读取整个文件。
- 跟踪行尾偏移
- 读取文件后,解析底部(因此是最近的)50 行左右,以便我可以提取相关数据并直观地显示
- 如果客户想要滚动超过我的 50 行,请使用偏移量转到前几行(通过 fs.read(..))。
另一种方法:
- 使用 fs.read() 直接走到最后
- 向后工作直到找到换行符
- 如果客户端想要滚动文件,请根据需要找出行偏移
这甚至没有考虑构建 tail -f
风格的功能。
我必须至少考虑 ascii
和 utf8
编码,以及 windows 与 linux 风格的行尾。
这是很多低级工作。
是否有已经提供功能的库?
如果我自己这样做,有什么我没有在这里提到的主要警告吗?我已经 20 年没有做低级、随机访问、编程了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。