我有这种方法:
public String scanInput()
{
String input = "";
Scanner skanner = new Scanner(System.in);
while(skanner.hasNextLine()){
input = skanner.nextLine();
}
skanner.close();
return input;
}
第一次运行此方法时,程序将停止,并提示我在控制台中进行输入,然后才能继续进行。但是,第二次运行该方法时,它闪烁而没有暂停,并且我的程序陷入了无限循环。
此方法的哪一行使程序暂停,为什么只在第一次暂停?
最佳答案
您即将在方法结束时关闭扫描仪。这将关闭正在处理的流-在这种情况下为System.in
。这意味着下次调用该方法时,流仍然关闭,因此没有行。
您应该设置一个Scanner
,并将其传递到方法中(或将其作为类中的状态)。