我正在尝试从类“ UserList.java”中读取“ User.json”文件,但我做不到。我正在JSP / Servlet中进行开发,我不喜欢在服务器文件夹(TOMCAT)的上下文中阅读。
我尝试一下:
// User.java
Gson gsonObject = new Gson();
String res = gsonObject.toJson(new FileReader("User.json"));
System.out.println("User ==> JSON " + res);
结果:
java.io.FileNotFoundException: User.json
Json文件:
// User.json
{
"user": {
"type": "text"
},
"name": {
"type": "text"
},
"password": {
"type": "password"
},
"characterName": {
"type": "combo",
"id": "rolls"
}
}
软件包如下:
br.com.servtech.servlet.list ==> UserList.java
br.com.servtech.model.json ==> User.json
该FileReader
构造函数接受一个文件名作为参数。您为它传递了一个相对文件名,因此Java在文件系统的当前目录中寻找它,该目录是启动用于启动Tomcat的java命令的目录。
不仅路径是这样不正确的,但你甚至不希望使用一个文件,因为你想读什么是资源是WAR文件里,甚至里面的战争文件内部的JAR文件。
您要使用该资源,这要归功于类加载器,因为必须使用与warclass和jars和package相同的加载机制(与.class文件一样)来找到此资源。因此,您应该使用
InputStream in = UserList.class.getResourceAsStream("/br/com/servtech/model/json/User.json");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句