br.readLine()用于非终止流?

时间:2015-04-09 18:32:14

标签: java service io stream processbuilder

我正在编写一个小实用程序,它显示一个运行/停止服务的列表。它读取控制台输出并在进一步处理后使用此输出。 该程序只是挂在br.readLine()可能是因为无法在流中找到终止字符。以下是代码的摘录。

    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语句永远不会打印。有什么指针可以解决这个问题吗?

0 个答案:

没有答案