0

我正在使用 ProcessBuilder 执行一些命令,如下所示:

BufferedReader response = null;
process = processBuilder.start();           
response = new BufferedReader(new InputStreamReader(process.getInputStream()));

但是代码块在下一行,同时从响应中读取行。

while((line = response.readLine()) != null) {
  /* some code here */
}

我做了一些谷歌,我发现当 readLine() 没有得到 EOL 时,它会阻塞。

我怎样才能使它工作或解决这个问题。

4

1 回答 1

1

根据 API,这就是所指示的readLine()

读取一行文本。一行被认为是由换行符 ('\n')、回车符 ('\r') 或紧跟换行符的回车符中的任何一个终止的。

因此,我认为您必须确保提供行终止符以避免阻塞。

于 2013-03-20T20:46:41.927 回答