node.js脚本调用最大值计算机代数系统并将输入重定向到最大值stdin
。 Maxima将处理后的输入写入临时文本文件,其中每个结果最大值返回都有一个新行。
节点是否可以监视写入文件的新数据并以某种方式捕获此数据(仅写入文件的新行,而不是整个文件)?
我已经尝试fs.watchFile
但无法捕获它返回的实际数据。
感谢。
答案 0 :(得分:0)
fs.watchFile
插入操作系统中的实际文件监视功能(Linux中的inotify),它只是通过路由这些事件。线路已经改变的任何逻辑等都必须由你自己实现。因为它是一个日志文件,您可能只对尾部感兴趣,并且您可以重用其他程序。例如,请参阅this example。
如果您想自己动手,请执行以下操作:
fs.watchFile("/path/to/log.txt", function (prev, curr) {
// verify writes
if (x && y && z) {
fs.readFile("/path/to/log.txt", "utf8", function (err, body) {
// check what has been appended
});
}
});