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

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

Patricia Arquette
Patricia Arquette原创
2024-12-06 22:11:13518浏览

How Can I Read a File Line by Line in Node.js?

在 Node.js 中一次读取一行文件

Node.js 提供了高效的机制来一次一行地处理大文件时间。此功能对于内存密集型操作或处理超出服务器内存的文件时至关重要。

要在 Node.js 中逐行读取文件,可以使用以下方法:

使用 readline 核心模块 (Node.js v0.12 )

Node.js 提供了 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
  });
  // Note: we use the crlfDelay option to recognize all instances of CR LF
  // ('\r\n') in input.txt as a single line break.

  for await (const line of rl) {
    // Each line in input.txt will be successively available here as `line`.
    console.log(`Line from file: ${line}`);
  }
}

processLineByLine();

使用 'readline' 包

对于 v0.12 之前的 Node.js 版本,'readline' 包提供了一个替代解决方案:

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');
});

在这两种方法中,即使没有尾随换行符,最后一行也能正确读取

其他注意事项

  • 确保“createReadStream()”中提供的文件路径准确。
  • 使用适当的方法处理错误try-catch 块或事件侦听器。
  • readline 模块的“关闭”当到达文件末尾或发生错误时会发出事件。

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

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