📅  最后修改于: 2023-12-03 14:58:09.143000             🧑  作者: Mango
在 node.js 中,我们经常需要读取文件并对其进行处理。这时候,我们需要遍历文件的每一行,以便对其进行操作。本文将介绍如何在 node.js 中遍历每一行文本。
在 node.js 中,可以通过 fs
模块中的 readFile
、createReadStream
等方法读取文件。这里我们以 createReadStream
方法为例:
const fs = require('fs');
const readStream = fs.createReadStream('example.txt');
readStream.on('data', (chunk) => {
console.log(chunk);
});
readStream.on('end', () => {
console.log('File reading is completed');
});
本例中,我们使用 createReadStream
方法创建一个读取流,该方法会返回一个 EventEmitter 实例。然后,我们监听了 data
事件和 end
事件。当数据流中有数据时,data
事件会被触发,我们可以在回调函数中对其进行处理。当数据流读取完成时,end
事件会被触发。
读取到的文件内容可能是一整块数据,我们需要将其拆分为行并遍历每一行。这里我们利用 readline
模块中的 createInterface
方法完成拆分:
const fs = require('fs');
const readline = require('readline');
const readStream = fs.createReadStream('example.txt');
const rl = readline.createInterface({ input: readStream });
rl.on('line', (line) => {
console.log(line);
});
rl.on('close', () => {
console.log('File reading is completed');
});
本例中,我们使用 createInterface
方法创建一个 readline.Interface
实例。该方法也会返回一个 EventEmitter 实例。然后,我们监听了 line
事件和 close
事件。当遇到一行数据时,line
事件会被触发,我们可以在回调函数中对其进行处理。当数据流读取完成时,close
事件会被触发。
const fs = require('fs');
const readline = require('readline');
const readStream = fs.createReadStream('example.txt');
const rl = readline.createInterface({ input: readStream });
rl.on('line', (line) => {
console.log(line);
});
rl.on('close', () => {
console.log('File reading is completed');
});
以上就是在 node.js 中遍历每一行文本的方法。