Java br.readLine()用于非终止流?
我正在编写一个小实用程序,它显示正在运行/停止的服务列表。它读取控制台输出,并在进一步处理后使用此输出。 程序只是挂起在br.readLine,可能是因为无法在流中找到终止字符。下面是代码的摘录Java br.readLine()用于非终止流?,java,service,io,stream,processbuilder,Java,Service,Io,Stream,Processbuilder,我正在编写一个小实用程序,它显示正在运行/停止的服务列表。它读取控制台输出,并在进一步处理后使用此输出。 程序只是挂起在br.readLine,可能是因为无法在流中找到终止字符。下面是代码的摘录 try { String mainFile=""; String temp=""; Process p = Runtime .getRuntime()
try {
String mainFile="";
String temp="";
Process p = Runtime
.getRuntime()
.exec(System.getenv("windir")
+ "\\system32\\WindowsPowerShell\\v1.0\\"
+ "powershell.exe Get-service | Format-List name , status , displayName ");
p.waitFor();
InputStream i = p.getInputStream();
InputStreamReader isr = new InputStreamReader(i);
BufferedReader br = new BufferedReader(isr);
while ((temp = br.readLine())!=null) {
mainFile = mainFile + temp + "\n";
}
} catch (Exception err) {
err.printStackTrace();
}
System.out.println(mainFile);
不幸的是,由于这个问题,最后一个syso语句从未打印。有解决这个问题的指针吗 在拨打br.readLine之前您是否尝试过?这可能会解决问题。我也尝试过,但没有成功。