Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FileNotFoundException,但文件存在于同一级别_Java_Error Handling_Filenotfoundexception_File Not Found - Fatal编程技术网

Java FileNotFoundException,但文件存在于同一级别

Java FileNotFoundException,但文件存在于同一级别,java,error-handling,filenotfoundexception,file-not-found,Java,Error Handling,Filenotfoundexception,File Not Found,我已经创建了一个程序,它帮助学生的成绩,我想将这些成绩存储在一个txt文件中,当我启动程序时,导入成绩,在程序完成后,导出成绩。我在一个单独的文件中有import和exportTo方法,然后在主类中调用这些方法。所有文件都在同一级别,没有语法错误。但我仍然得到一个FileNotFoundException作为错误。这是我的进出口代码: public void exportTo(String fileName) { try ( FileOutputStream fo

我已经创建了一个程序,它帮助学生的成绩,我想将这些成绩存储在一个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();
    }
}

这与您的工作目录设置不正确有关。要绕过这个问题,请这样做

'''

'''

然后可以将目录名传递给函数

或者如果您正在使用IntelliJ

  • 点击“跑步”
  • 转到“编辑配置”
  • 查找“工作目录”字段
  • 将其更改为您正在处理的目录

  • 向我们显示您的文件路径(也称为文件名)您可能只是指定了文件名(而不是完整路径),并且您的程序的当前目录不是您的输入文件所在的目录。代码似乎正常,只需检查您的文件路径请检查您的程序正在运行的目录。此外,还要检查在写入文件时是否指定了正确完整的路径。并验证您在该位置是否具有操作系统权限。
    System.setProperty("user.dir", YOUR_WORKING_DIRECTORY);
    String dir = System.getProperty("user.dir")