为什么Java中初始化Scanner之后依然是null

新手上路,请多包涵

问题描述:

Java中初始化Scanner之后依然是null

源代码:

private static String doReadFile(){
    Scanner scanner = null;
    try{
        scanner = new Scanner(System.in);
        System.out.println(" ");
        System.out.print("请输入要读取文件的位置:");
        if (!scanner.hasNext()){
            String path = scanner.next();
            return path;
        
    }catch (Exception e){
        e.printStackTrace();
    }finally {
        if (scanner != null){
            try {
                scanner.close();
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
    return "";
}

错误内容:

请输入要读取文件的位置:
java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:862)
    at java.util.Scanner.next(Scanner.java:1371)
    at cn.hlriyong.io.Test01.doReadFile(Test01.java:61)
    at cn.hlriyong.io.Test01.main(Test01.java:20)
阅读 2k
1 个回答

这段代码应该编译不过啊:

image.png

然后,要使用 next() 或者 nextXxxx(),应该判断 hasNext() 而不是 !hasNext()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题