ある褒め言葉では、次のようにデータを System.out に送信しようとしています。
別のコマンドで、このデータを System.in から取得しようとしています。
何度も試してみるとうまくいくので、不思議です。私はそれを10回実行しようとすることができinReader.ready() == false
ます.
なんで ?どうすればこれを修正できますか? 毎回それを機能させる方法は?
前もって感謝します !
You can't read your InputStream that way, since the data may not have been arrived at the second process yet. You can either read character by character, with something like:
InputStreamReader inReader = new InputStreamReader(System.in);
int data = inReader.read();
while (data != -1){
...
data = inReader.read();
}
or simple read the input line by line, using:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while ((String line = br.readLine()) != null) {
...
}
シェルコマンドを実行することが目的の場合は、System.outを使用せずに、Runtime.getRuntime().exec(cmd)
代わりに使用してください。詳細については、この質問を確認してください。