【问题标题】:Node.js - how to read a long string (over 10000 characters) from process.stdin?Node.js - 如何从 process.stdin 中读取一个长字符串(超过 10000 个字符)?
【发布时间】:2018-08-06 01:53:45
【问题描述】:
对于一个编程练习,我需要从process.stdin 读取一个长字符串(超过 10000 个字符)。 (节点 6.11.0,Win 10)
如果我使用process.stdin 或readline,我会受到我实际可以输入的字符数的限制——命令提示符实际上会在大约 2700 个字符后停止接受任何输入,直到我按下 Enter 键。但关键是它必须是一长行,没有 \n 字符。
有什么办法呢?
【问题讨论】:
标签:
node.js
stream
stdin
readline
【解决方案1】:
找到答案,此代码有效:
let readline = require('readline');
let rl = readline.createInterface({
input: process.stdin,
terminal: true
});
function readLine (line) {
//process your line, which could be very very long
}
rl.on('line', readLine);
诀窍是使用terminal: true。当您使用它时,您在打字时看不到您的输入,但它可以到达readLine 函数,并且可以很长。如果您使用terminal:false,那么您可以看到您输入的内容,但输入限制为大约 2.700 个字符。