我正在尝试从json文件读取到读取器,以便将其解析为java对象:`
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class main {
public static void main(String[] args) throws IOException{
try(Reader reader = new InputStreamReader(main.class.getResourceAsStream(
"/Users/edwardk/IdeaProjects/practice_json/small_incidents.json"),"UTF-8")){
Gson gson = new GsonBuilder().create();
Person p = gson.fromJson(reader, Person.class);
System.out.println(p);
}
}
}
'
我在运行时收到一个NullPointerException。
资源不是文件,路径/用户/edwardk/...
看起来像文件路径。
您应该使用文件
API来读取文件,如果您在Windows上,则路径需要从C://
开始,而不是从/
开始。如果要将文件作为资源加载,则应使用相对于类路径的文件路径。例如,如果practice\u json
目录位于类路径上,您可能只需要使用的“small\u incents.json”
。
你的代码是好的,但是NullPointerExc0019
出现是因为
main.class.getResourceAsStream(
"/Users/edwardk/IdeaProjects/practice_json/small_incidents.json"),"UTF-8")
返回null。尝试将json文件粘贴到与main相同的目录中。java与变革:
main.class.getResourceAsStream(
"small_incidents.json"),"UTF-8")
或者指定小元素的正确相对路径。json
我有以下问题 返回null,但是 返回InputStream,并且两个文件都在此文件夹中。有什么不对劲? 我使用的是libgdx-0.9.6
问题内容: 我的项目目录结构(在Eclipse中): 在中,我有以下代码: 运行此命令时,将获得以下控制台输出: 为什么? 我放置在错误的位置了吗?我是否使用了ClassLoader API错误?还有吗 提前致谢! 问题答案: 如果在同一包装中使用 您拥有的方式 它在类路径的根目录中查找文件。你可以用 搜索规则在的javadoc和的javadoc中进行了说明。
问题内容: 不知道这怎么可能。我重新阅读了getResourceAsStream,它始终返回null。 在Finder中(使用OS X和Eclipse),在test.java的旁边是test.xml 我可以在TextWrangler中打开它,并查看其中是否存在数据。 如果有什么不同,这是Junit测试。我去查看了系统上现有的Junit测试,并以与工作示例完全相同的方式来使用它(如文件所在的位置和代
问题内容: 我正在从Java项目的已编译JAR中的包中加载文本文件。相关目录结构如下: 我的代码通过调用返回来加载文件。 无论我使用什么,都将始终打印输出。我不确定为什么上面的方法行不通,所以我也尝试了: 这些都不起作用。我 读 了许多 问题至今的话题,但他们都不是有帮助的-通常情况下,他们只是说,使用根路径,这我已经在做负载文件。那,或者只是从当前目录加载文件(只是),我也尝试过。该文件将使用适
问题内容: 我在Java Web应用程序中具有以下结构: 在中WS.java,我在Web方法中使用以下代码: 但是它总是返回null。我需要读取该文件,并且我读到如果将文件放入其中,则可以使用进行访问,但是该方法始终返回null。 对我可能做错的任何想法? 它正在工作,但是当我Clean and Build在Project上执行了a之后,它突然停止工作了 问题答案: 据我所知,该文件必须正确地放置
我的jar中有一个图像,我正试图加载它,但是getResourceAsStream()总是返回null。 目录结构: 所容纳之物爪哇: 一般内容。爪哇: StackTrace: 我不知道为什么类加载器找不到图像。我已经在编译的jar中查看过了,文件在那里,并且在油漆中打开很好,所以文件是OK的。我已经尝试了各种ClassLoader变体,包括getSystemClassLoader(),getCl