无法从Eclipse中的单独项目获取Json文件

时间:2014-05-07 21:57:45

标签: java json eclipse inputstream

我有一个java应用程序,我想加载 JSON 。我正在调用的 API 方法需要InputReader,所以我尝试了以下代码:

ClassLoader classLoader = Assets.class.getClassLoader();
new InputStreamReader(classLoader.getResourceAsStream("data/clientJson.json")));

该文件位于“ data ”文件夹下的Assets包中,但InputStreamReader始终抛出异常,指出输入为Null

如果我将该文件移到该类旁边,并将Classloader更改为引用它所使用的同一个类,而不是Assets类。

我已尝试过名称路径的每个排列,但也无济于事。

2 个答案:

答案 0 :(得分:1)

如果导入了其他Eclipse项目,并且数据/文件夹位于src /文件夹下(或者在其他项目中标记为类路径资源),那么它将起作用。我认为您首先需要验证Eclipse导入/导出关系和其他文件夹类路径是否正确。

Sample 2 Project Setup in Eclipse

如果您转到资产(在我的示例中为A)项目的属性,则资源/文件夹必须位于"订单和导出"之下。您可以在" Libraries"下添加它。 as"类路径文件夹"。资产项目必须是构建路径上的必需项目"。注意" classpath文件夹" A / src / main / resources上的图标。

答案 1 :(得分:0)

尝试

new InputStreamReader(getClass().getClassLoader().getResource("data/clientJson.json"));

编辑:

来自 http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html

的静态网址
       getSystemResource(String name)
      //Find a resource of the specified name from the search path used to load classes.

BTW我总是使用.getInputStream();例如:

  BufferedReader stream = new BufferedReader(new  InputStreamReader(new FileInputStream(object.getInputStream()));