不正确的绝对文件路径

Eva*_*Kim 1 java

我需要一个我调用的 csv 文件的相对路径GameDatabase.csv。它与我的main方法在同一个文件夹中,它们都在zzz文件夹中。

找不到文件一直出现,所以我决定打印绝对路径

String db = "GameDatabase.csv";
File file = new File(db);
String path = file.getAbsolutePath();
System.out.print("\npath " + path);
Run Code Online (Sandbox Code Playgroud)

输出是

path xxx\IdeaProjects\CISC_231\FinalProject\GameDatabase.csv
Run Code Online (Sandbox Code Playgroud)

然而,我正在寻找的路径是

xxx\IdeaProjects\CISC_231\FinalProject\zzz\GameDatabase.csv
Run Code Online (Sandbox Code Playgroud)

为什么绝对文件路径打印出来?后台发生了什么,如何更改它以获得正确的文件路径?

w4b*_*4bo 5

那是因为,当您查找文件时,默认目录是项目一(在本例中FinalProject

我的项目结构如下

在此处输入图片说明

Main.java并且GameDatabase.csv都在src

import java.io.File;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        System.out.println(new File("GameDatabase.csv").exists()); // the file does not exist in FinalProject folder
        System.out.println(new File("src/GameDatabase.csv").exists()); // but exists in FinalProject/src
        System.out.println(Main.class.getClassLoader().getResourceAsStream("GameDatabase.csv").toString()); // this is a solution to look for the file within the classpath
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是

false
true
java.io.BufferedInputStream@7852e922
Run Code Online (Sandbox Code Playgroud)