【发布时间】:2023-03-04 21:41:01
【问题描述】:
我有一个想要加载 JSON 的 java 应用程序。我正在调用的 API 方法采用 InputReader,所以我尝试了以下代码:
ClassLoader classLoader = Assets.class.getClassLoader();
new InputStreamReader(classLoader.getResourceAsStream("data/clientJson.json")));
该文件位于“data”文件夹下的Assets 包中,但InputStreamReader 总是抛出异常,指出输入为Null。
如果我将文件移到类旁边并更改 Classloader 以引用它可以工作的同一类,但不适用于 Assets 类。
我已经尝试了名称路径的所有排列方式,但均无济于事。
【问题讨论】:
-
你不能有一个与包名相同的完全限定类名——它会在运行时和编译时引起问题。为什么要移动文件?标题中的单独项目是如何涉及的?
-
该项目是使用 PlayN 框架创建的。它为 Shared、Assets、Android、Java、Html5 等构建使用单独的包。该框架带有用于加载 PlayN 相关资产的内置方法,但没有内置 JSON 支持。
-
您可能想将“Package”更改为“Project”(如果我理解正确的话)
标签: java json eclipse inputstream