为什么我的程序在从BufferedReader读取行时会阻塞?

时间:2013-03-20 20:41:47

标签: java adb

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

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

但代码阻塞在下一行,而读取来自响应行。

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

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

如何使其发挥作用或解决该问题。

1 个答案:

答案 0 :(得分:1)

根据API,这是readLine()

的内容
  

读取一行文字。一条线被认为是由换行符('\ n'),回车符('\ r')或回车符后面的任何一个终止。

所以我认为你必须确保提供线路终结器以避免阻塞。