节点 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 标记。
我在 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 标记。