【发布时间】:2015-07-14 09:35:56
【问题描述】:
public static int take1(){
Scanner in = new Scanner(System.in);
while(true){
try{
System.out.print("\nHow many coloms you want = ");
return in.nextInt();
}
catch(Exception e ){
System.out.println("Sorry,Please enter only no.");
in.next();
}
}
}
如何关闭扫描仪对象,如果我使用 finally 关闭此对象或尝试使用资源,它也会关闭 System.in,并且我不能多次从流中读取。最好的方法是什么?
【问题讨论】:
-
为什么要关闭它?仅仅是因为有编译器警告吗?
-
你想要达到的目标
-
如果您希望多次调用您的方法
take1,请不要在此方法中创建扫描仪对象。在您调用take1()方法的地方创建它,并将扫描仪对象作为参数传递给您的方法,例如take1(Scanner sc),然后在多次调用您的方法后关闭您的主要方法中的扫描仪。 -
因为编译器警告,我想关闭它。