【问题标题】:JSONParser getResourceAsStreamJSONParser getResourceAsStream
【发布时间】:2010-06-28 14:01:57
【问题描述】:

我正在从事一个项目,我需要其中的资源。我正在尝试使用此代码获取它:

输入流是 = JSONParser.class.getResourceAsStream("a.json");
String jsonTxt = IOUtils.toString(is);

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

确切的问题是:

线程“main”中的异常 java.lang.NullPointerException
在 java.io.Reader.(Reader.java:61)
在 java.io.InputStreamReader.(InputStreamReader.java:55)
在 org.apache.commons.io.IOUtils.copy(IOUtils.java:1049)
在 org.apache.commons.io.IOUtils.toString(IOUtils.java:359)
在 com.playence.parser.JSon.main(JSon.java:28)

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

有什么帮助吗?

比提前。

【问题讨论】:

    标签: java nullpointerexception


    【解决方案1】:

    您有例外,因为您的 Class.getResourceAsStream() 找不到 a.json,在这种情况下,它返回 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() 方法找到,尽管真正的问题实际上是以流的形式检索文件内容,无论您如何执行此操作。

    【讨论】:

    • 我将文件放在 src/main/resorces 中,并且 Y 尝试将它放入与调用它的类相同的文件中,但我得到了同样的错误。键入孔路径也是相同的结果。也许这可能是 ecplipse 和库的问题??
    • 顺便说一下,我是通过导入maven依赖来使用JSONParser的,我的项目中没有JSONParser.java。
    • @mujer-esponja:我看到你正在使用 src/main/resorces 文件夹。你在使用 Maven 吗?
    • @mujer-esponja:您放置在 src/main/resorces 中的文件与您的 jar 中的文件完全相同(我假设您正在构建一个 jar 或使用 maven 项目,请参见此处:@987654322 @)。您可以使用与读取它的类相同的子包路径添加文件,然后按原样检索它(如在我的示例中),或者我猜 JSONParser.class.getResourceAsStream("/a.json") 应该可以工作.这取决于您的环境。
    【解决方案2】:

    我终于找到了我的问题并解决了它。
    它与我的 Eclipse 配置有关:

    项目 - 属性 - 来源

    我在 Myproject/src/main/resources 中有 Exclude **。

    所以该目录中的文件不在类中。我解决了它只是把排除(无)。

    现在一切正常。 还是谢谢你!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      相关资源
      最近更新 更多