gpt4 book ai didi

java - JSONParser getResourceAsStream

转载 作者:行者123 更新时间:2023-11-29 06:20:47 26 4
gpt4 key购买 nike

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

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

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

确切的问题是:

Exception in thread "main" java.lang.NullPointerException  
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(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'为null,我想这就是为什么会出现NullPointException,但我不知道如何解决。

有什么帮助吗?

提前谢谢。

最佳答案

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

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

如果它是一个库,也许您可​​以从与 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() 方法找到,尽管真正的问题实际上是将文件内容作为流检索,无论您如何操作。

关于java - JSONParser getResourceAsStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3133006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com