猿问

在循环中进行输入时,如何关闭扫描仪对象?

我正在使用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


慕勒3428872
浏览 150回答 2
2回答
随时随地看视频慕课网APP

相关分类

Java
我要回答