首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONParser getResourceAsStream

JSONParser getResourceAsStream
EN

Stack Overflow用户
提问于 2010-06-28 14:01:57
回答 2查看 7.3K关注 0票数 1

我在一个项目中工作,我需要一个资源。我正在尝试使用以下代码来获取它:

JSONParser.class.getResourceAsStream("a.json");= InputStream 字符串jsonTxt = IOUtils.toString( is );

文件a.json位于项目的主文件中。

确切的问题是:

线程"main“java.lang.NullPointerException中的异常

代码语言:javascript
复制
 at java.io.Reader.(Reader.java:61)
代码语言:javascript
复制
 at java.io.InputStreamReader.(InputStreamReader.java:55)
代码语言:javascript
复制
 at org.apache.commons.io.IOUtils.copy(IOUtils.java:1049)
代码语言:javascript
复制
 at org.apache.commons.io.IOUtils.toString(IOUtils.java:359)
代码语言:javascript
复制
 at com.playence.parser.JSon.main(JSon.java:28)  

调试时,我看到变量' is‘是空的,我猜这就是为什么NullPointException,但我不知道如何解决它。

有什么帮助吗?

提前准备好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-28 14:53:29

最后,我发现了我的问题,并解决了它。

它与我的Eclipse配置相关:

项目-倾向-资料来源

我在Myproject/src/main/resources中有,不包括**。

所以那个目录中的文件不在类中。我解决了它,只是把它排除在外(没有)。

现在一切都好了。不管怎么都要谢谢您!

票数 1
EN

Stack Overflow用户

发布于 2010-06-28 14:07:49

您有异常,因为您的a.json找不到您的Class.getResourceAsStream(),在这种情况下,返回null而不是流。

您的a.json文件应该以现在的方式与JSONParser类位于同一个包中。这是您的类之一,还是来自外部库的实用程序?

如果它是一个库,也许您可以从与a.json位于同一个包中的类中检索流,然后将其作为参数传递:

代码语言:javascript
复制
InputStream is = YourClassBesidesTheFile.class.getResourceAsStream("a.json");
String jsonTxt = IOUtils.toString( is );

或者为文件使用完整的路径,比如"/some/package/etc/etc/a.json"

代码语言:javascript
复制
InputStream is = JSONParser.class.getResourceAsStream("/some/package/etc/etc/a.json");
String jsonTxt = IOUtils.toString( is );

为了解决这个问题,您的文件必须由Class.getResourceAsStream()方法找到,尽管真正的问题实际上是以流的形式检索文件内容,不管您是如何做的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3133006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档