Node.js API详解之 readline模块用法详解
简介
readline模块是Node.js内置的标准输入输出的接口,提供了纯文本模式的读取和处理。使用readline模块可以实现终端命令行与程序之间的交互,如输入、查询、修改数据等。本文将详细讲解readline模块的用法,包括基本的读取和处理、逐行读取文件等。
安装和引入
由于readline模块是Node.js内置的核心模块,因此无需单独安装,可直接引入使用。在Node.js中使用以下代码引入readline模块:
const readline = require('readline');
readline接口的基本用法
下面我们来看一下readline接口的基本用法。
创建readline实例
要使用readline模块,需要先创建readline接口实例。使用readline模块可以通过以下代码来创建readline实例:
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
接收的options对象包含两个属性:
- input:标准输入流。process.stdin表示标准输入流。
- output:标准输出流。process.stdout表示标准输出流。
这里,我们通过process.stdin读取用户输入,通过process.stdout输出返回结果。
监听事件
创建实例后,还需要监听事件。
readline模块提供了两个监听函数:
- rl.on(event, callback):监听事件
- rl.once(event, callback):监听一次事件
下面是readline模块提供的一些事件:
- line: 用户在终端输入时触发此事件
- close: 输入流被关闭之后触发
- SIGINT:当用户按下
^C
来退出程序时触发
例子 - 命令行回复
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('请输入你的名字:', (answer) => {
console.log(`欢迎你,${answer}!`);
rl.close();
});
例子 - 遍历用户输入
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', (input) => {
console.log(`你输入了 ${input}`);
});
console.log('请开始输入:');
逐行读取文件
readline模块可以逐行读取文件。逐行读取大文件时特别有用, 此时,我们无需一次读取整个文件,而是可以一行一行地读取,从而提高程序的性能。
readline模块提供了一个createInterface()函数,该函数用于创建一个输入接口实例, 然后你可以使用该接口实例来读取数据流中的每一行。
例子
const readline = require('readline');
const fs = require('fs');
const rl = readline.createInterface({
input: fs.createReadStream('./example.txt')
});
rl.on('line', (line) => {
console.log(`文件内容为:${line}`);
});
结语
readline模块是Node.js中非常实用的标准输入输出接口,它为终端命令行提供了很多方便的交互操作,如逐行读取大文件,修改数据,查询等操作。本文介绍了readline模块的基本用法和逐行读取文件的使用方法,这些知识可以应用于Node.js的大多数开发场景中,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Node.js API详解之 readline模块用法详解 - Python技术站