Создание технологической трубы с помощью ProcessBuilder в Java 7

Я пытался выяснить, как подключить несколько процессов в Java, используя новый ProcessBuilder. Я не могу найти подходящий пример того, что я хочу делать, и когда я пытаюсь сделать это сам, процесс просто зависает. Я хотел бы получить очень простой пример некоторого кода, который выполняет эквивалент cat test.txt | wc, но не через оболочку.

- Update -

ОК, просто для уточнения. Я знаю, что есть способы имитировать канал, читая и записывая потоки. Мне интересно, если это сделать в автоматическом режиме с помощью методов redirectInput и redirectOutput в Java 7.

Ответ 1

В этом случае вам не нужна труба.

"grep bla test.txt"

однако, полагая, что вам нужен канал, вам нужно использовать оболочку типа bash

"/bin/bash", "-c", "grep foo text.txt | grep bar"

Ответ 2

Запустите дочерний поток для каждой пары Input-/OutputStream с простым циклом копирования в run().