Node.js - 如何从process.stdin中读取一个长字符串(超过10000个字符)?

时间:2018-02-26 15:00:53

标签: node.js stream stdin readline

对于一个编程练习,我需要从process.stdin读取一个长字符串(超过10000个字符)。 (节点6.11.0,赢10)

如果我使用process.stdinreadline,我会陷入我实际可以输入的字符数限制 - 命令提示符实际上会在大约2700个字符后停止接收任何输入,直到我按Enter键。但重点是它必须是一个长行,没有\ n字符。

这样做的方法是什么?

1 个答案:

答案 0 :(得分: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个字符。