簡體   English   中英

將進程的輸出重定向到字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM