我在一个项目中工作,我需要一个资源。我正在尝试使用以下代码来获取它:
JSONParser.class.getResourceAsStream("a.json");= InputStream 字符串jsonTxt = IOUtils.toString( is );
文件a.json位于项目的主文件中。
确切的问题是:
线程"main“java.lang.NullPointerException中的异常
at java.io.Reader.(Reader.java:61) at java.io.InputStreamReader.(InputStreamReader.java:55) at org.apache.commons.io.IOUtils.copy(IOUtils.java:1049) at org.apache.commons.io.IOUtils.toString(IOUtils.java:359) at com.playence.parser.JSon.main(JSon.java:28) 调试时,我看到变量' is‘是空的,我猜这就是为什么NullPointException,但我不知道如何解决它。
有什么帮助吗?
提前准备好。
发布于 2010-06-28 14:53:29
最后,我发现了我的问题,并解决了它。
它与我的Eclipse配置相关:
项目-倾向-资料来源
我在Myproject/src/main/resources中有,不包括**。
所以那个目录中的文件不在类中。我解决了它,只是把它排除在外(没有)。
现在一切都好了。不管怎么都要谢谢您!
发布于 2010-06-28 14:07:49
您有异常,因为您的a.json找不到您的Class.getResourceAsStream(),在这种情况下,返回null而不是流。
您的a.json文件应该以现在的方式与JSONParser类位于同一个包中。这是您的类之一,还是来自外部库的实用程序?
如果它是一个库,也许您可以从与a.json位于同一个包中的类中检索流,然后将其作为参数传递:
InputStream is = YourClassBesidesTheFile.class.getResourceAsStream("a.json");
String jsonTxt = IOUtils.toString( is );或者为文件使用完整的路径,比如"/some/package/etc/etc/a.json"
InputStream is = JSONParser.class.getResourceAsStream("/some/package/etc/etc/a.json");
String jsonTxt = IOUtils.toString( is );为了解决这个问题,您的文件必须由Class.getResourceAsStream()方法找到,尽管真正的问题实际上是以流的形式检索文件内容,不管您是如何做的。
https://stackoverflow.com/questions/3133006
复制相似问题