节点 js 产卵切割结果

node js spawn cut result

我在 node js 中有这段代码执行 java program 并读取 stdout

let javaRun = spawn('java', execParam);
javaRun.stdout.on('data', function (data) {
    console.log(data.toString());               
});

在大多数情况下,它工作得很好,但在某些情况下,returned 字符串非常大(utf8 中有 22700 个字符),当它那么大时,console.log 只打印第一个8020 个字符并删除其余字符。

有没有办法让字符串 return 的长度不受限制,或者至少是一个非常大的字符串?

谢谢

const CONSOLELOGLIMIT = 8020;
let s = 0, f = CONSOLELOGLIMIT, part = ' ';
strData = data.toString();
while(part.length > 0) {
    part = strData.substr(s, f);
    console.log(part);
    s = s + CONSOLELOGLIMIT;
    f = f + CONSOLELOGLIMIT;
}

我看到 .on('data') 被调用了多个数据块。

所以我修改了 java 以在每次系统输出某些内容并在读取标准输出时查找它时添加一个 EOL 标记。