Node.js开始在特定行上读取文件



在node.js上,我们可以使用readline模块通过行读取文件:

var fs = require('fs');
var readline = require('readline');
var rl = readline.createInterface({
    input: fs.createReadStream('filepath');
});
rl.on('line', function(line) {
    console.log(`Line read: ${line}`);
});

但是,如果我们想开始在特定行号上阅读该怎么办?我知道,当我们使用createReadStream时,我们可以通过start参数传递。文档中解释了这一点:

options可以包括 startend值,以读取文件而不是整个文件中的一系列字节。

但是,这里的start是字节中的一个偏移,因此使用它来设置起始行似乎很复杂。

我们如何适应这种方法以开始在特定行上读取文件?

您必须从开头和计数行读取文件,并在到达某个行之后才开始处理行。没有办法让文件系统告诉您特定的行从哪里开始。

var fs = require('fs');
var readline = require('readline');
var cntr = 0;
var rl = readline.createInterface({
    input: fs.createReadStream('filepath');
});
rl.on('line', function(line) {
    if (cntr++ >= 100) {
        // only output lines starting with the 100th line
        console.log(`Line read: ${line}`);
    }
});

相关内容

  • 没有找到相关文章

最新更新