我正在使用ProcessBuilder执行一些命令,如下所示:
BufferedReader response = null;
process = processBuilder.start();
response = new BufferedReader(new InputStreamReader(process.getInputStream()));
但代码阻塞在下一行,而读取来自响应行。
while((line = response.readLine()) != null) {
/* some code here */
}
我做了一些谷歌,我发现当readLine()没有得到EOL然后它会阻止。
如何使其发挥作用或解决该问题。
答案 0 :(得分:1)
根据API,这是readLine()
读取一行文字。一条线被认为是由换行符('\ n'),回车符('\ r')或回车符后面的任何一个终止。
所以我认为你必须确保提供线路终结器以避免阻塞。