繁体   English   中英

Java Scanner(System.in)在用户输入后不打开文件

[英]Java Scanner(System.in) does not open file after user input

您好,我遇到了一个找不到解决方案的问题。 我要求用户输入文件名,但我得到的输出总是“无法打开文件”。 任何建议将不胜感激。

    Scanner reader = new Scanner(System.in); 
    System.out.println("Enter the name of textfile to be read ( add .txt): ");

    String fileName = reader.next();
    String line = null;
    BufferedReader bufferedReader =   new BufferedReader(fileReader);

    while((line = bufferedReader.readLine()) != null) {
        System.out.println(line); 

        catch(FileNotFoundException ex) {
        System.out.println(
            "Unable to open file '" + 
            fileName + "'");                
       }

        catch(IOException ex) {
        System.out.println(
            "Error reading file '" 
            + fileName + "'");                  
        // Or we could just do this: 
        // ex.printStackTrace();
    }
    }

FileNotFoundException 总是被执行,但为什么?

PS,如果我将路径更改为特定位置,例如“C:\\etc”,它会读取文件。

如果您只提供文件名而不提供路径,Java 不知道在哪里查找。 如果您确定该文件将位于项目目录中,只需在用户输入前添加 C:/etc。

如果不指定绝对文件路径,即C:/dir/... ,java 将在与项目根目录相同的目录(与srcbin文件夹相同的目录)中查找。 如果该文件在那里,它将仅通过文件名找到它,或者如果您在该文件夹中创建一个目录,则路径中将需要该目录。 如果您有一个可执行 JAR,情况也是如此,它将在 JAR 所在的同一目录中查找。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM