Java 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()

我正在编写一个小实用程序,它显示正在运行/停止的服务列表。它读取控制台输出,并在进一步处理后使用此输出。 程序只是挂起在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语句从未打印。有解决这个问题的指针吗

在拨打br.readLine之前您是否尝试过?这可能会解决问题。我也尝试过,但没有成功。