【问题标题】:web app java load resource from a fileWeb应用程序Java从文件加载资源
【发布时间】:2016-07-07 21:47:10
【问题描述】:

我在一个动态网络项目中,我想加载一个资源文件。

我这样做了:

String queryTemplate = IOUtils.toString(this.getClass().getResource(
                "test.rq"));

test.rq 存在于src/main/resources 中,但我在该行获得了空指针。

我想也许 src/main/resources 不是 maven 中的主要(默认)资源文件夹,所以我把它放在 pom 中

<build>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>

        </resources>
    </build>

但后来我的 asp 页面停止工作(我不知道为什么),所以我认为有一种方法可以从 src/main/resources 获取资源而无需更改 pom

【问题讨论】:

  • 应该是getClass().getResource("/test.rq") - 请注意/getClass().getClassLoader().getResource("test.rq")

标签: java apache maven tomcat


【解决方案1】:

使用这个:

InputStream testIn = getClass().getResourceAsStream("/test.rq");
String queryTemplate = IOUtils.toString(testIn);

IOUtils.toString() 似乎将InputStream 作为输入,所以我使用了getResourceAsStream()

我对空指针的猜测是您需要引用类路径的根来访问资源文件,因此我使用了/test.rq,其中斜线表示根。

【讨论】:

  • 请输入来自 java.o 的输入流?
  • 我不知道你在问什么,但是是的,你需要将 InputStream 传递给 IOUtils.toString()
猜你喜欢
  • 1970-01-01
  • 2012-04-11
  • 1970-01-01
  • 2016-01-28
  • 2021-12-23
  • 2011-04-19
  • 2011-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多