2016-09-29 5 views
0

私はnode jsにこのコードを持ってjava programを実行し、stdoutノードJSスポーンカット結果

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

を読んでいることは、ほとんどの状況では、うまく動作しますが、いくつかの状況で返される文字列は22700文字(かなり大きいですutf8)、それが大きければ、console.logは最初の8020文字だけを出力し、それ以外はカットします。

文字列または少なくとも非常に大きな文字列の長さを無制限にする方法はありますか?

あなたは

+0

ファイルに書き込もうとしますか? – AshBringer

+0

@AshBringer問題はconsole.logにありません。たとえファイルに書き込んだとしても、最初の8020文字だけを取得します。 – Etienne

+0

'.sustr'は空文字列を返すまで8020charの倍数で' .sustr'を返します。部? – DrakaSAN

答えて

0

私はデータのチャンクと掛け合わさ時間と呼ばれていたこと.on(「データ」)を見ていただきありがとうございます。

私は何かをsysoutするときにEOLタグを追加するようにjavaを変更し、stdoutを読み込んでいる間にそれを探します。

0
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; 
}