1. 逐行读取文件:
const readline = require('readline');
const fs = require('fs');
// 创建可读流
const fileStream = fs.createReadStream('example.txt');
// 创建逐行读取的接口
const rl = readline.createInterface({
input: fileStream,
crlfDelay: Infinity // 用于处理换行符
});
// 逐行读取
rl.on('line', (line) => {
console.log(`Line from file: ${line}`);
});
// 文件读取完成事件
rl.on('close', () => {
console.log('File reading completed.');
});
在上述示例中,example.txt 是待读取的文件名。每当读取到一行数据时,会触发 'line' 事件,回调函数中将打印该行数据。当文件读取完成时,会触发 'close' 事件。
2. 逐行读取标准输入流:
const readline = require('readline');
// 创建逐行读取的接口
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 逐行读取
rl.question('Enter something: ', (answer) => {
console.log(`You entered: ${answer}`);
rl.close();
});
// 接口关闭事件
rl.on('close', () => {
console.log('Input reading completed.');
});
在上述示例中,rl.question 用于向用户提示输入,并在用户输入回答后触发回调函数。用户输入的数据将作为回调函数的参数传递。
这些示例演示了如何使用 readline 模块逐行读取文件或从标准输入流中逐行读取数据。这在处理大型文件或需要用户逐行输入的情况下非常有用。
转载请注明出处:http://www.zyzy.cn/article/detail/4763/Node.js