关闭Scanner(System.in)后,创建Scanner(System.in),但无法正常运行

时间:2017-09-13 07:30:05

标签: java

e.g)

public void a(){
     Scanner input = new Scanner(System.in);
     String a = input.nextLine();
     ....
     input.close();
}

public void b(){
     Scanner scan = new Scanner(System.in);
     int b = scan.nextInt();
     ....
     scan.close();
}

此扫描仪无法正常运行。 但是在删除close()之后,它可以正常工作。

我想原因是' System.in'有问题。

请给我回答。

谢谢

+)首先在()中调用input.nextLine(),然后在b()中调用scan.nextInt()。    我有错误,如NoSuchElementException。

1 个答案:

答案 0 :(得分:0)

public void b(){
     Scanner scan = new Scanner(System.in);
     int b = scan.nextLine();
     ....
     input.close();
}

这不应该是input.close();b()方法无法访问input方法的a()变量。所以你应该用scan.close()

替换它
public void b(){
     Scanner scan = new Scanner(System.in);
     int b = scan.nextLine();
     ....
     scan.close();
}