java ProcessBuilder的read方法在cmd命令还没输出完成返回false到账进程提前结束
时间: 2023-06-27 18:08:29 浏览: 97
JAVA语言中read方法分析
4星 · 用户满意度95%
`ProcessBuilder` 的 `read()` 方法是用来读取子进程的输出流的。如果子进程的输出流还没有完成输出,`read()` 方法会阻塞等待直到有数据可读。
如果你在使用 `read()` 方法的时候,子进程的输出流还没有完成输出,而 `read()` 方法返回了 `false`,那么可能是因为子进程已经结束了。你可以尝试使用 `Process.waitFor()` 方法来等待子进程结束后再读取输出流。示例代码如下:
```
ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "your-command");
Process p = pb.start();
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
```
这段代码会等待子进程执行完毕后再读取输出流,并将输出打印到控制台。
阅读全文