我正在使用while循环从控制台获取输入,并调用我的input()方法。但是,当我尝试关闭扫描仪对象时,它会给出运行时错误。当对象未关闭时,程序会正确运行,但日食会警告说资源泄漏:'s'永远不会关闭。如何解决?我的输入代码是
String input()
{
try
{
Scanner s = new Scanner(System.in);
String str=s.nextLine();
s.close(); // error because of this
return str;
}
public class validation {
public static void main(String args[])
{
try
{
String name;
String email_id;
String number;
validation v= new validation();
do{
System.out.println("Enter the name");
name=v.input();
}
while (!(v.validate_name(name)) );
do{
System.out.println("Enter valid Mobile Number");
number=v.input();
}
while(!(v.validate_number(Long.parseLong(number))) || !(v.filevalidate(number)));
do{
System.out.println("Enter valid Email_id");
email_id=v.input();
}
while(!(v.validate_email(email_id)) || !(v.filevalidate(email_id)));
v.writeToFile(name,number,email_id);
}
catch(Exception e){System.out.println(e);}
错误输出为
输入名称Justin输入有效的手机号码java.util.NoSuchElementException:找不到行java.lang.NumberFormatException:null
相关分类