В принципе, у меня есть программа, выход которой идет на стандартный вывод. Я запускаю эту программу из моего кода Scala. Сейчас я хочу перенаправить вывод в файл. Что-то вроде этого.Как пропустить stdout в Scala?
val cmd = progName + " " + arguments
cmd #> new java.io.File(outputFilePath) !
Мне также необходимо обработать этот выходной файл. Вот почему этот подход медленный, так как я должен сначала дождаться завершения программы, и все будет записано в выходной файл. Я бы предпочел, чтобы содержимое потока stdout транслировалось так, что из другого потока я мог читать содержимое по мере его потоковой передачи. Таким образом, я могу обрабатывать данные во время работы программы, которую я запускаю из Scala.
Кроме того, данные в выходном файле разделены символами новой строки. Есть ли способ, я могу получить данные по очереди, когда программа запущена.
И, наконец, есть ли что-то в Java, чтобы это сделать, и затем я могу использовать его в Scala?
Посмотрите на Scala [ProcessBuilder] (http://www.scala-lang.org/api/current/index.html#scala.sys.process.ProcessBuilder), чтобы увидеть, как перенаправить стандартный вывод – cchantep
Я не знаю достаточно о Scala, но это может быть дубликат [this] (http://stackoverflow.com/a/5564667/1863564). –