2

我正在编写一个读取用户输入的代码,所以我制作了一个程序来执行此操作,读取并返回字符串。当从另一个过程调用它两次时,返回一个 NoSuchElementException 错误,我不知道为什么。

输入阅读器过程:

    public static String read() {
    
72    Scanner leer = new Scanner(System.in);
73    String entry = leer.nextLine();
74    leer.close();
75    return entry;
    
    }

我如何使用它:

...
    System.out.println("input value ");
    String padre = Entrada.read();
    System.out.println("input values ");
27  String reemplazado = Entrada.read();
...

我越来越

Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Unknown Source)
    at modulocarga.Entrada.leerEntradaUsuario(Entrada.java:73)
    at modulocarga.TablaSimbolica.addTaxonomica(TablaSimbolica.java:27)
    at modulocarga.Principal.main(Principal.java:8)

我第一次调用它时工作正常,然后它崩溃了。会是什么呢?

4

2 回答 2

0

由于只InputStream使用了一个,因此在第二次调用该方法时不再可能从关闭的输入源中读取

避免关闭Scanner(或创建单个类实例Scanner以在应用程序端关闭)

于 2014-04-28T22:18:49.513 回答
0

这是因为您的扫描仪链接到 System.in,当您关闭扫描仪时,它也会自动关闭 System.in。你想要做的只是关闭你的扫描仪而不关闭 System.in。

这将有所帮助:关闭扫描仪而不关闭 System.in

于 2014-04-28T23:25:05.993 回答