Дайте и получите ввод-вывод Java-программы из источника - PullRequest
3 голосов
/ 02 февраля 2009

Как я могу написать программу, которая будет запускать другую Java-программу (должна вызывать эту программу), передавать входные данные этой программе из этой программы, получать выходные данные и распечатывать выходные данные в файл.

1 Ответ

8 голосов
/ 02 февраля 2009

Использование ProcessBuilder

Пример:

ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Process p = pb.start();
InputStream in = p.getInputStream();
OutputStream out = p.getOutputStream();


// Write to input of the program using outputstream here
...

// Read output of program from input stream here
// ...


FileOutputStream fileOut = new FileOutputStream("output.txt");
BufferedInputStream bIn = new BufferedInputStream(in);

byte buf = new byte[4096];
int count;

while ((count = bIn.read(buf)) != -1) {
    fileOut.write(buf, 0, count);
}

...
fileOut.close();
bIn.close();

// Exception handling is left as an exercise for the reader :-P
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...