我在Process Builder的帮助下通过java代码点击一些命令。 以下是我的代码
Process poc = null;
List<String> result = new LinkedList<String>();
BufferedReader response = null;
ProcessBuilder pb = new ProcessBuilder(command);
pb.directory(new File(commands.get(GlobalConstants.ADB_PATH_WINDOW)));
poc = pb.start();
我正在使用BufferedReader读取其输出:
response = new BufferedReader(new InputStreamReader(poc.getInputStream()));
String line = "";
while ((line = response.readLine()) != null)
{
result.add(line);
if (line.contains("daemon started successfully"))
{
return result;
}
}
但有时line = response.readLine()
方法会进入infinite loop
。
我知道原因是什么,但我无法通过使用readLine()
函数来解决这个问题。
有人可以用不同的阅读逻辑来帮助我。
答案 0 :(得分:0)
可能错误来自另一个原因。 检查EGG是否真的到达:
try {
while (true) {
result.add(response.readLine());
if (line.contains("daemon started successfully"))
{
return result;
}
} } catch (EOFException e) {}