一次一行读取大文件在各种情况下都至关重要,尤其是当内存消耗是一个问题时。 Node.js 提供了多种方法来有效地实现这一目标。
从 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中文网其他相关文章!