[英]Redirecting Output of a process to a String?
我正在嘗試將進程的輸出轉換為字符串,但是我遇到了一些問題。 我以某種方式設法將輸出保存在一個單獨的文件中(在stackoverflow.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();
嘗試這個
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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.