Не совсем правильно даже говорить, что это делает Java, поскольку из-за различий в обработке процессов / потоков в разных операционных системах большая часть этой функциональности фактически передается нативному коду.
Более интересным вопросом будет спросить, есть ли у Scala какой-либо способ более «идиоматически» работать с читателями и писателями (или каналами, если вы объединяете свои потоки с функциональностью NIO)
А ответ?
В настоящее время ведется работа над библиотекой scala IO, основанной на версии 2.8, она почти наверняка будет включать лучший способ работы с потоками и каналами, но пока недоступна.
Вы также можете найти, что акторы - лучший способ справиться с обычной практикой использования одного потока для ввода и одного потока для вывода при работе с процессом exec ().