【问题标题】:FileNotFoundException, but file exists in the same levelFileNotFoundException,但文件存在于同一级别
【发布时间】:2015-12-28 18:05:52
【问题描述】:

我已经创建了一个程序,它保存了学生的成绩,我想将这些成绩存储在一个 txt 文件中,当我启动程序时,导入成绩,程序完成后,导出成绩。我将 import 和 exportTo 方法放在一个单独的文件中,然后在主类中调用这些方法。所有文件都在同一级别,并且没有语法错误。但我仍然收到 FileNotFoundException 作为错误。这是我的导入和导出代码:

public void exportTo(String fileName) {
    try (
            FileOutputStream fos = new FileOutputStream(fileName);
            PrintWriter writer = new PrintWriter(fos);
    ) {
        for (Grade grade : mGrades) {
            System.out.printf("New grade" +grade);
            writer.printf("%s|%s%n",grade.getPupil(), grade.getGrade());
        }
    } catch(IOException ioe) {
        System.out.printf("Problem saving %s %n", fileName);
        ioe.printStackTrace();
    }
}

public void importFrom(String fileName) {
    try (
            FileInputStream fis = new FileInputStream(fileName);
            BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
    ) {
        String line;
        while((line = reader.readLine()) != null) {
            String[] args = line.split("\\|");
            addGrade(new Grade(args[0], args[1]));
        }
    } catch(IOException ioe) {
        System.out.printf("Problems loading %s %n", fileName);
        ioe.printStackTrace();
    }
}

【问题讨论】:

  • 向我们展示您的文件路径(又名文件名)
  • 您可能只指定了文件名(不是完整路径),并且程序的当前目录不是您的输入文件所在的目录。
  • 代码好像没问题,看看你的文件路径就行了
  • 请检查程序运行的目录。还要检查您在写入文件时是否指定了正确且完整的路径。并验证您是否在该位置拥有操作系统权限。

标签: java error-handling filenotfoundexception file-not-found


【解决方案1】:

这与您的工作目录设置不正确有关。要解决此问题,请执行此操作。

'''

System.setProperty("user.dir", YOUR_WORKING_DIRECTORY);
String dir = System.getProperty("user.dir")

'''

然后您可以将目录名称传递给您的函数。

或者,如果您使用的是 IntelliJ,

  1. 点击“运行”
  2. 转到“编辑配置”
  3. 查找“工作目录”字段
  4. 将其更改为您正在处理的目录。

【讨论】:

    猜你喜欢
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    相关资源
    最近更新 更多