Node.js 的 readline 模块

Node.js 的 readline 模块是用于逐行处理输入/输出流的核心模块,

特别适合交互式命令行应用和大文件逐行解析

以下是关键特性和用法:

一、核心功能

  1. 逐行处理

    • 通过事件驱动机制监听换行符(\n\r 或 \r\n)触发 line 事件

    • 支持异步迭代器模式(Node.js 11.7+)实现同步风格代码

  2. 接口控制

    • createInterface() 绑定输入输出流(如 process.stdin/stdout

    • close() 释放资源并触发 close 事件

二、典型应用场景

  1. 命令行交互

    • 使用 question() 实现选项菜单

    • 示例:用户选择后执行对应操作

  2. 文件处理

    • 结合 fs.createReadStream 逐行读取大文件,避免内存溢出

    • 通过 crlfDelay: Infinity 兼容不同系统的换行符

三、代码示例

异步迭代器读取输入:

const rl = require('readline').createInterface({  input: process.stdin});(async () => {  for await (const line of rl) {    console.log('Received:', line);  }})();

四、注意事项

必须显式调用 close() 结束输入监听,否则进程会挂起[文]

浏览器环境无法直接使用,需通[章]过 Node.js 或 Web Worker 实现


标签:

相关文章

暴风雨

暴风雨来临之前,天空中弥漫着一股压抑的气息。乌云密布,仿佛覆盖着一片灰暗的帷幕,将整个天地都笼罩在一片阴沉的氛围中。狂风大作,吹拂着路上的尘土和枝叶,让人感到一阵阵的凉意。突然,一声炸雷打破了寂静,紧...

工作总结报告怎么写

一、基础结构框架(六步法)‌引言开场‌用简明语言说明总结周期、岗位职责及整体工作成效。例如:“2025年在公司战略目标指导下,本人围绕XX职责,通过优化流程/创新方法等措施,顺利完成本年度KPI指标”...

Vue简版 教程

一、安装与项目创建‌CDN 引入(适合快速体验)‌通过 <script> 标签直接引入 Vue3 的 ES 模块构建版本:<div id="a...

PHP 8.x的性能提升有哪些?

PHP 8.x 在性能方面实现了显著提升,主要归功于以下核心改进:1. JIT 编译器引入PHP 8 通过引入 ‌Tracing JIT‌ 编译器,将热点代码动态编译为机器码,使计算密集型任务(如数学...

PHP 8.3 引入了多个实用的新函数和语法特性

PHP 8.3 引入了多个实用的新函数和语法特性,以下是最值得关注的部分:新函数特性json_validate() - 轻量级JSON验证‌直接验证JSON格式而无需解码,比使用json_decode...

摄影小白也能拍出大片!这些技巧你get了吗?

🌟第一招:光线是你的最佳搭档💡想要让你的照片看起来更加有质感吗?那就要学会利用自然光啦~早晨或傍晚时分柔和的阳光,能给照片增添几分温馨的感觉。记得尽量避免正午强烈的直射日光哦,它可能会让画面显得过于刺...