我需要检查一项工作的状态,直到成功为止。为此,我编写了以下代码。 但是程序在执行完语句后挂起。
boolean isComplete = false;
for (int i=0; i<30; i++) {
p_stdin.write("ar job-name");
p_stdin.newLine();
p_stdin.flush();
Thread.sleep(2000);
Scanner s = new Scanner( p.getInputStream() );
String output = "";
while (s.hasNext())
{
output = s.next() ;
System.out.println(output);
if(output.equalsIgnoreCase("SU")) {
isComplete = true;
break;
}
}
if(isComplete) {
System.out.println("Found");
break;
} else {
System.out.println("Not found in "+ i + " iteration");
}
s.close();
}
答案 0 :(得分:0)
如果此扫描仪的输入中包含另一个令牌,则返回true。 此方法可能在等待输入扫描时阻塞。扫描仪不会前进超过任何输入。
您需要关闭已写入的流,以便hasNext()
有机会返回false
。