Текущая ситуация
Я выполняю внешнее приложение (используя Runtime.getRuntime().exec
... пример здесь ) и слушаю поток, в который приложение записывает стандартный вывод.Эта часть работает как положено, и я получаю результаты (в контроллере grails), строка за строкой , так как они доступны, и - когда у потока больше нет содержимого - я отображаю результат на странице.
Другой аспект - это инициализация этого приложения со страницы gsp, асинхронно.Это также уже рассмотрено, и сделан вызов remoteFunction (в вышеупомянутый метод контроллера), результаты собираются и возвращаются, и они правильно отображаются в обозначенной области на странице.
Но чтоменя это беспокоит, и я на самом деле хочу добиться:
Цель
, чтобы отобразить строки, прочитанные из потока , как они читаются , а не после завершения всего потока(как это делается сейчас).
Это означает (что-то вроде, например) вызова render для каждой строки в цикле чтения потока:
while ((line = bri.readLine()) != null) {
System.out.println(line);
//render line here?
}
Может ли это быть достигнуто?
Пожалуйста, объясните:)