NPM酷库:split 按行读取文本流

NPM酷库,每天两分钟,了解一个流行NPM库。

昨天,我们了解的Node.js中数据流的处理,并使用through快速创建双向流,今天,我们继续讨论数据流。

我们昨天说到,使用数据流,可以分批读取数据到内存,而不用将文件一次性读取到内存。比如一个非常大文本文件,每一行是一条数据,我们可以每次读取一行,进行处理。

fs.createReadStream(file)
  .on('data', function (chunk) {
    //...
  });

上述代码中,每次流对象的data事件都会传递一个数据块chunk,但是遗憾的是,每个chunk并不是一行,也不是完整的多行,某一行有可能会被分开到两个chunk中,分两次返回,所以我们就需要多做很多额外的工作来处理。

split

split 能够快速实现对流数据块的处理,每一次精确返回一行完整的数据:

fs.createReadStream(file)
  .pipe(split())
  .on('data', function (chunk) {
    //...
  });

参考资料

https://github.com/dominictar…

    原文作者:脉冲云_梁兴臣
    原文地址: https://segmentfault.com/a/1190000013025629
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞