在 Node.js 中,你可以使用 readline 模块来逐行读取文件或者从标准输入流中逐行读取数据。下面是一个简单的示例,演示如何使用 readline 模块逐行读取文件:

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