在 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'); });
在这两种方法中,即使没有尾随换行符,最后一行也能正确读取
其他注意事项
以上是如何在 Node.js 中逐行读取文件?的详细内容。更多信息请关注PHP中文网其他相关文章!