Перенаправить вывод процесса в строку?
Я пытаюсь получить вывод процесса в строку, но у меня возникли некоторые проблемы. Каким-то образом мне удалось получить вывод, сохраненный в отдельном файле (нашел что-то здесь на stackru.com). Вот мой код, чтобы начать процесс:
String javaHome = System.getProperty("java.home");
String javaBin = javaHome + File.separator + "bin" + File.separator
+ "java";
String classpath = System.getProperty("java.class.path");
String className = klasse.getCanonicalName();
ProcessBuilder builder = new ProcessBuilder(javaBin, "-cp", classpath,
className, ip, port, team, "okay");
Запись в файле:
File log = new File("logfile_deleteable" + a);
builder.redirectOutput(Redirect.appendTo(log));
assert builder.redirectInput() == Redirect.PIPE;
assert builder.redirectOutput().file() == log;
assert process[a].getInputStream().read() == -1;
И наконец:
process[a] = builder.start();
1 ответ
Попробуй это
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process[a].getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line = null;
while ( (line = bufferedReader.readLine()) != null) {
stringBuilder.append(line);
stringBuilder.append(System.getProperty("line.separator"));
}
String output = stringBuilder.toString();