如何一次读取第1行的文件

时间:2016-05-06 19:02:17

标签: node.js

Read a file one line at a time in node.js?不重复。

另一个线程中的所有示例都回答了如何逐行读取文件。但是他们都没有专注于如何逐行一行一行地读取文件

为了说明,我在另一个帖子中修改了accepted answer的代码:

let index = 0;

const rl = readline.createInterface({
    input: fs.createReadStream(path.resolve(__dirname, './countries.txt'))
});

rl.on('line', () => {
    console.log('line', ++index);

    rl.pause();
});

根据执行代码的机器的速度,运行此程序的输出将类似于:

line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
...
line 564
line 565
line 566
line 567

如何逐行一行一行读取文件?

强调在示例中使用rl.pause的意图:我需要从文件中获取1行并停止进一步读取文件,直到我明确请求第二行。

2 个答案:

答案 0 :(得分:2)

我真的不明白你为什么使用readline界面来读取文件。

我建议您使用split,例如

  var splitstream = fs.createReadStream(file).pipe(split())
  splitstream
    .on('data', function (line) {
      //each chunk now is a seperate line!
      splitstream.pause();
      setTimeout(function (){ splitstream.resume() }, 500);
    })

你一定会得到一行。

**为评论编辑。

答案 1 :(得分:0)

以下是如何逐行读取文件并在读取下一行之前处理一行。

Microsoft.AspNet.WebApi.Extensions.Compression