我需要一个我调用的 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)
为什么绝对文件路径打印出来?后台发生了什么,如何更改它以获得正确的文件路径?
那是因为,当您查找文件时,默认目录是项目一(在本例中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)
| 归档时间: |
|
| 查看次数: |
372 次 |
| 最近记录: |