Поскольку Scala имеет так много классных вещей, я думал, что у нее может быть что-то, что облегчает захват процесса. Я знаю способ Java, но я думал о другом.Есть ли какой-либо встроенный класс Scala для захвата вывода внешнего процесса?
ответ
scala> scala.tools.nsc.io.Process("ls -1 /tmp | wc").stdout foreach println
41 63 770
Или есть команда РЕПЛ:
scala> :sh cat /etc/passwd | wc
stdout: List[String] = List( 65 185 3667)
Доставки кода IO с 2,8 собиралось потребуется преодолеть больше стоп энергии, чем я могу бить, так что я положил все это в компиляторе. В scala.tools.nsc.io много полезных материалов.
Не совсем правильно даже сказать, что Java делает это из-за различной обработки процессов/потоков в разных операционных системах, большая часть этой функциональности фактически передается в собственный код.
Более интересный вопрос будет затем, чтобы спросить, если Scala имеет какой-либо способ работать более «идиоматический» с читателями и писателями (или каналами, если вы оборачивать ваши потоки с функциональностью NIO)
И ответ?
В настоящий момент в библиотеке scala IO работает работа на базе 2.8, это почти наверняка включает в себя лучший способ работы с потоками и каналами, но пока недоступен.
Вы также можете найти актеров, чтобы быть лучшим способом справиться с обычной практикой использования одного потока для ввода и одного потока для вывода при работе с процессом exec() 'd.
По Scala 2.9, вы можете сделать:
import scala.sys.process.Process
println(Process("uname -a").!!.contains("x86_64"))
- 1. Ошибка захвата для внешнего процесса
- 2. Поток ввода для внешнего процесса в Scala
- 3. Сжатый способ захвата вывода процесса в Java
- 4. Есть ли встроенный класс URL в .Net?
- 5. Есть ли встроенный универсальный класс для этого в .NET?
- 6. Есть ли встроенный класс для создания значков уведомлений?
- 7. Есть ли встроенный класс Android для создания XML не непрерывно?
- 8. Есть ли встроенный класс для редактирования изображения в zend framework
- 9. Использовать ProcessBuilder для захвата вывода отдельного пакета
- 10. Использование потока для захвата выходного процесса
- 11. Есть ли класс для всех последовательностей в Scala?
- 12. исключения из процесса захвата
- 13. захвата вывода CMD
- 14. Есть ли встроенный класс с HTTP-ответами и его категориями?
- 15. Есть ли встроенный редактор кода для Elm?
- 16. Есть ли встроенный оператор «ИЛИ» для массивов?
- 17. Есть ли встроенный метод для ввода строки?
- 18. Есть ли встроенный класс heapify/метод в java?
- 19. Тип вывода для вложенных типов в Scala
- 20. Геометрическое среднее: есть ли встроенный?
- 21. pytest + xdist без захвата вывода?
- 22. Есть ли инструмент для захвата состояния объектов на диск?
- 23. RoR Импрессионизм захвата внешнего клика
- 24. Scala hit GC overhead при запуске большого внешнего процесса
- 25. есть ли какая-либо диаграмма ввода-вывода-вывода, генерирующая инструменты?
- 26. Отладка внешнего процесса?
- 27. C++ Выполнение внешнего процесса
- 28. питон скрипт для захвата вывода команды топ
- 29. Scala для понимания-вывода типа
- 30. Есть ли предел символов для вывода