我正在使用IntelliJ和Maven开发一个Java项目,但是我在加载和解析Json文件时遇到了麻烦。我正在使用Gson进行解析。
这是导致问题的代码片段:
threadCount
我正在使用此方法对其进行调试:
public void parseSomething() {
Gson gson = new GsonBuilder().create();
//The Json file contains an array of objects, and I need to put it into a Vector
Type listType = new TypeToken<List<MyClass>>(){}.getType();
List<MyClass> something = new Vector<>();
try(Reader file = new FileReader("dir/myFile.json")){
something = gson.fromJson(file, listType);
} catch (IOException e) {
e.printStackTrace();
}
this.something = something; //this sets the attribute of the class
}
public static void main( String[] args ) {
MyClass myClass = new MyClass();
myClass.parseSomething();
String debug = something.toString(); //I've already implemented a custom toString
System.out.println(debug);
}
被FileNotFoundException
抛出。
如果我的猜测是正确的,程序甚至无法进行解析,因为它无法找到该文件。
try(Reader file = new FileReader("dir/myFile.json"))
和src/main/resources/dir/myFile.json
...)。 resources/dir/myFile.json
String fileName = "dir/myFile.json";
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
File file = new File(classLoader.getResource(fileName).getFile());
)NullPointerException
您是否知道无法找到该文件的原因?还有其他方法可以加载它吗?
答案 0 :(得分:0)
我相信在InteliJ的情况下,Reader开始在项目的根目录中查找文件,所以像这样:
./path/to/file/dir/MyFile.json
。
./
使它开始查看项目的根文件夹。在/IdeaProjects/MyProject
,在这种情况下,它将从MyProject
文件夹开始。