背景 -
我正在尝试使用 node.js 和 fs 模块来完成监视文件的最终目标,并检测已附加到它的行。
当前实施 -
我目前正在使用fs.watch持续监视文件的更改,并在触发监视后使用fs.readFile读取文件。
缺点 -
这种实现的缺点是,以这种方式导出附加行的计算成本高且速度慢,特别是因为尽管我只对附加行感兴趣,但它需要读取整个文件内容。
理想的解决方案 -
我想改用fs.createReadStream以某种方式读取文件直到最后,将文件描述符留在最后,并在附加文件后再次开始读取。
我找到了两种读取流缓冲区内容的方法,但是在readable.read()和readable.on('data',...)这两种实现中,似乎一旦存在流就结束了尽管流没有关闭,但没有更多数据要读取。我不确定如何继续使用已结束的流,因为readable.resume()似乎没有做任何事情。
我的问题 -
如何以修改文件后触发的方式从文件中读取附加行?我的理想解决方案是否正确?
感谢您的时间和帮助!