PumpStreamHandler может захватывать выходные данные процесса в режиме реального времени

ускаю скрипт Python в моем приложении Java с

Process p = Runtime.getRuntime().exec("python script.py");

Этот сценарий выполняется в цикле и отменяется только событием (или взаимодействием с пользователем). Сценарий записывает в выходной цикл каждый цикл цикла некоторый текст, например «12:22:35 - Heartbeat»

while True:
  print("Heartbeat")
  time.sleep(1)

В моем приложении Java я хочу прочитать этот вывод, как он выглядит. Моя проблема в том, что если я использую BufferReader, он будет ждать, пока процесс не завершится, и после этого он прочитает вывод. Вот как я это читаю:

BufferedReader is = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;

while ((line = is.readLine()) != null)
   System.out.println(line);

Как я могу прочитать вывод «вживую»?

Для лучшего понимания: python-скрипт слушает аппаратную кнопку, и когда эта кнопка нажата, выводится какой-то вывод. И в моем Java-приложении я хочу показать это сообщение и отправить его некоторым клиентам.

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

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