Java-процесс с потоком ввода / вывода

У меня есть следующий пример кода ниже. Таким образом, вы можете ввести команду для оболочки bash, т.е.echo test и получить результат echo'd обратно. Однако после первого прочтения. Другие выходные потоки не работают?

Почему это или я что-то не так делаю? Моя конечная цель - создать запланированное многопоточное задание, которое периодически выполняет команду для / bash, поэтомуOutputStream а такжеInputStream придется работать в тандеме и не прекращать работать. Я также испытывал ошибкуjava.io.IOException: Broken pipe есть идеи?

Благодарю.

String line;
Scanner scan = new Scanner(System.in);

Process process = Runtime.getRuntime ().exec ("/bin/bash");
OutputStream stdin = process.getOutputStream ();
InputStream stderr = process.getErrorStream ();
InputStream stdout = process.getInputStream ();

BufferedReader reader = new BufferedReader (new InputStreamReader(stdout));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));

String input = scan.nextLine();
input += "\n";
writer.write(input);
writer.flush();

input = scan.nextLine();
input += "\n";
writer.write(input);
writer.flush();

while ((line = reader.readLine ()) != null) {
System.out.println ("Stdout: " + line);
}

input = scan.nextLine();
input += "\n";
writer.write(input);
writer.close();

while ((line = reader.readLine ()) != null) {
System.out.println ("Stdout: " + line);
}

Ответы на вопрос(3)

Ваш ответ на вопрос