Node.js 的 readline 模块

admin3个月前 (06-25)it知识230

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 实现


标签: 分享IT知识

相关文章

灵动:生活中的艺术与智慧

在这个充满变化的世界里,灵动是一种独特的魅力,它让我们的生活更加丰富多彩,充满了可能性和创意。灵动不仅是一种艺术,更是一种智慧,它存在于我们的思维、情感和行动中。首先,灵动是一种艺术。在我们的生活中,...

享受工作:找到事业与生活的平衡点

工作是我们日常生活中不可或缺的一部分。我们花费大量的时间和精力在工作中,因此,如何享受工作并找到事业与生活的平衡点就显得尤为重要。在这篇文章中,我们将探讨如何享受工作,让事业和生活愉快并行。首先,了解...

湖边

湖边,一片静谧的美好。清晨的阳光洒在湖面上,波光粼粼,让人心旷神怡。湖上的荷叶轻轻摇曳,荷花争奇斗艳,仿佛在向人们展示着它们的美丽。湖边的柳树依依,芦苇丛生,形成了一道道天然的屏障,让人感到一种隐秘的...

敏捷开发

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可...

如何高效学习

努力和技巧的能力。以下是一些可以帮助你高效学习的方法:制定学习计划:制定一个清晰的学习计划,包括学习内容和时间表,有助于你更好地组织自己的学习并提高学习效率。创造良好的学习环境:在学习时,尽可能避免干...

如何写文章

过程,需要一定的技巧和准备。以下是一些写文章的步骤和技巧:确定文章的主题和目的:在开始写作之前,您需要明确文章的主题和目的。这有助于您确定文章的重点和方向。研究和收集信息:在开始写作之前,进行一些研究...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。