【Java】ProcessBuilderで外部プログラムと対話する

Javaで外部プログラムの呼び出しはProcessBuilderですが、外部プログラムがもし、標準入出力で対話してくる場合、非常に扱いがめんどくさくなります。

 

外部プログラムの出力はProcessのgetInputStreamメソッドでストリームから読み込むのですが、もし外部プログラムが入力待ちになったらread()メソッドで処理が止まってしまいます。

そこで、外部プログラムから受け取った文字が入力待ちの前の文字ならストリームからの入力をやめる。という処理をします。

この場合想定しうる入力待の前の文字列すべてで条件判定しなきゃなのでもっといい方法だれか教えてください。

 

そして、外部のプログラムに出力するには

BufferedWriterで

write()、newLine()、flush()

のメソッドを順番に呼べば外部のプログラムへ出力できます。

完全に私的メモ