我正在制作一个Maven项目,并且尝试使用Gson或simpleJson作为我的项目的解析器。
我的资源文件夹中有一个名为moves.json的文件 而当我尝试运行此代码时:
JSONParser pr = new JSONParser();
Object el = pr.parse(new InputStreamReader(new FileInputStream("moves.json")));
我得到一个
Exception in thread "main" java.io.FileNotFoundException: moves.json (No such file or directory)
当我尝试这段代码时:
JsonReader reader = new JsonReader(new InputStreamReader(test.class.getResourceAsStream("moves.json")));
JsonElement movelist = new JsonParser().parse(reader);
我得到一个:
Exception in thread "main" java.lang.NullPointerException
我尝试使用ClassLoader和getResource以及我在网络上搜索的其他方法,但遇到相同的空指针异常错误
这是完整的课程:
import com.google.gson.*;
import com.google.gson.stream.JsonReader;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import java.io.*;
public class test {
public static void main(String [] args) throws IOException, ParseException {
JSONParser pr = new JSONParser();
Object el = pr.parse(new InputStreamReader(new FileInputStream("moves.json")));
JsonReader reader = new JsonReader(new InputStreamReader(test.class.getResourceAsStream("moves.json")));
JsonElement movelist = new JsonParser().parse(reader);
System.out.println("");
}
}
答案 0 :(得分:0)
由于资源位于类路径上,因此应使用类加载机制打开流:
Object el = pr.parse(new InputStreamReader(
test.class.getResourceAsStream("moves.json")));