如何使用nodejs读取文本文件的特定部分

时间:2018-02-17 10:29:15

标签: javascript node.js file-io

我想逐行读取一个带有nodejs的文本文件。 这适用于可读流。 问题是其他程序在文件中添加了行。我只想阅读新行或更改而不是孔文件。 我尝试使用移动光标的功能。但这只适用于可写流。 在“结束”事件发生后是否有可能恢复流?或者我如何只能在文件的特定位置读取几行?

var readableStream = fs.createReadStream('file.txt');
var data = '';

readableStream.on('data', function(chunk) {
    data+=chunk;
});

readableStream.on('end', function() {
    console.log(data);
});

readline核心模块也可以正常工作。 但我如何从文件中读取一行。

2 个答案:

答案 0 :(得分:1)

文件流库具有watch功能,您可以使用该功能来查看文件中的更改。当nodejs或外部源文件发生变化时,该函数执行。

fs.watch('pathToDirectory', function (event, filename) {
    console.log('event is: ' + event);
    if (filename) {
        console.log('filename provided: ' + filename);
    } else {
        console.log('filename not provided');
    }
});

您可以进一步阅读fs.watch()以了解更多相关信息。这就是你应该用来实现你所要求的。

答案 1 :(得分:0)

我这样做的方法是保存最后一个位置并在下一次读取时跳过这些字节stream-skip