Javascript Node.js开始读取特定行上的文件
在Node.js上,我们可以使用Javascript Node.js开始读取特定行上的文件,javascript,node.js,Javascript,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}`);
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
参数。这些文件对此进行了解释:
选项
可以包括开始
和结束
值,以便从文件而不是整个文件中读取一定范围的字节
但是这里的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}`);
}
});
为了确定发生换行的位置,您需要读取该文件。无法直接打开文件并能够跳转到紧跟在
\n
之后的字节。实际上,您可以通过此实现指定确切的行号