【问题标题】:Ask a user to input fileName that I later read要求用户输入我稍后阅读的文件名
【发布时间】:2022-01-20 13:52:32
【问题描述】:

我正在处理的任务是要求用户输入他们希望加密的文件名。现在我专注于让它读出,但我收到了 fileNotFound 异常。该文件与应用程序位于同一文件夹中,并使用 .txt 正确拼写。这是我的代码,所以任何人都可以找出错误吗?

case '1': {
    System.out.println("Enter The name of the File you wish to Encrypt: ");
    String inputFile = scanner.next();
    
    try {
        File file = new File(inputFile);
        Scanner myReader = new Scanner(file);
        while (myReader.hasNextLine()) {
            String msg = myReader.nextLine();
            System.out.println(msg);
        }
        myReader.close();
    } catch (FileNotFoundException e) {
        System.out.println("An error occurred.");
        e.printStackTrace();
        break;
    }
}

【问题讨论】:

  • 你输入的路径是什么?
  • 仅仅因为文件与应用程序位于同一路径中,并不意味着这是执行应用程序的位置。它可能位于不同的目录中(例如构建目录或其他地方)。
  • 您是从 IDE 还是从控制台运行它?某些项目(例如 Maven 项目)有一个特定文件夹,所有资源文件都必须放入其中。否则,您将需要文件的完整路径。
  • 有趣,在这种情况下我应该输入的路径示例是什么?
  • 我在 IntelliJ IDEA 中运行它

标签: java file encryption


【解决方案1】:

在提示符处提供您要加载的文件的完整路径,或者如果您从 IntelliJ 运行它,您可以将文件放在项目目录的根目录中,然后在提示符处输入文件名,它会被加载。

【讨论】:

    【解决方案2】:

    有几个问题。 那就去给自己介绍一下这篇文章Path vs File in Java

    您的路径可能不正确,这令人担忧。导航到文件和 Java 程序的绝对目录将是一个开始

    如果不是这样,请记住 Java 是一种 VM 语言,文件可能不在 VM 上

    【讨论】:

      猜你喜欢
      • 2013-12-03
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-17
      相关资源
      最近更新 更多