调用Scanner.close()会引发nosuchelement异常

调用Scanner.close()会引发nosuchelement异常,第1张

调用Scanner.close()会引发nosuchelement异常

当您关闭时,

scan
您将关闭,
System.in
并且当您尝试从中重新读取时,它将引发异常。

你的老师就在一个方面,你应该清理的资源,只是 没有 当谈到

System.in


无需在每次需要输入时都重新打开流,而是可以创建

Scanner
一次并在需要输入的地方重新使用它:

public static void main(String[] args) throws IOException {    Scanner scan = new Scanner(System.in);    System.out.println(getUserString("Write something:", scan));    System.out.println(getUserString("Write something else:", scan));}private static String getUserString(String userCommand, Scanner scan) {    System.out.println(userCommand);    String userinput = scan.nextLine().trim();    if (userinput.isEmpty()) {        System.out.println("Invalid choice");        return getUserString(userCommand, scan);    } else {        return userinput;    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5033620.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存