我需要一个名为的csv文件的相对路径GameDatabase.csv
。它与我的main
方法位于同一文件夹中,两者均位于该zzz
文件夹中。
该文件一直没有找到,所以我决定打印绝对路径
String db = "GameDatabase.csv";
File file = new File(db);
String path = file.getAbsolutePath();
System.out.print("\npath " + path);
输出是
path xxx\IdeaProjects\CISC_231\FinalProject\GameDatabase.csv
但是我正在寻找的道路是
xxx\IdeaProjects\CISC_231\FinalProject\zzz\GameDatabase.csv
为什么绝对文件路径会打印出来?后台发生了什么,如何更改它以获取正确的文件路径?
这是因为,当您查找文件时,默认目录是项目目录(在本例中为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
}
}
输出是
false
true
java.io.BufferedInputStream@7852e922
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句