首页 >web前端 >js教程 >如何在 Node.js 中高效地逐行读取文件?

如何在 Node.js 中高效地逐行读取文件?

DDD
DDD原创
2024-12-07 04:43:11703浏览

How to Efficiently Read Files Line by Line in Node.js?

在 Node.js 中逐行读取文件

简介

一次一行读取大文件在各种情况下都至关重要,尤其是当内存消耗是一个问题时。 Node.js 提供了多种方法来有效地实现这一目标。

Node.js Readline 模块

从 Node.js v0.12 开始,readline 核心模块为此提供了稳定的解决方案。使用方法如下:

const fs = require('fs');
const readline = require('readline');

async function processLineByLine() {
  const fileStream = fs.createReadStream('input.txt');

  const rl = readline.createInterface({
    input: fileStream,
    crlfDelay: Infinity
  });

  for await (const line of rl) {
    console.log(`Line from file: ${line}`);
  }
}

processLineByLine();

此代码从指定文件创建读取流,然后使用 readline 接口迭代该文件,将每一行打印到控制台。

使用外部模块的替代方法

如果您使用旧版本的 Node.js,您可以考虑使用第三方模块,例如 line-reader。下面是一个示例:

var lineReader = require('readline').createInterface({
  input: require('fs').createReadStream('file.in')
});

lineReader.on('line', function (line) {
  console.log('Line from file:', line);
});

lineReader.on('close', function () {
    console.log('all done, son');
});

此代码使用 line-reader 模块创建一个 line reader 接口,然后用于侦听 'line' 事件。每次从文件中读取一行时,都会触发事件处理程序,将该行打印到控制台。

以上是如何在 Node.js 中高效地逐行读取文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn