在src中读取相对静态文件

时间:2012-12-11 14:09:48

标签: java

我的.tpl文件在 src 的包中包含一些静态内容。 例如src/A/B/C/test.tpl我试图从一个兄弟那个文件(src/A/B/C/Test)中读取它。

我无论如何都找不到它! FileReader抛出FileNotFoundException。

解决方案: Class.getResource()有效。问题是关于tpl扩展,默认情况下不会编译。 IDE已设置添加扩展以进行编译。我使用.html而不是更新编译器设置。

Test.class.getResource("/A/B/C/test.html").getPath().replace("%20", " ")

2 个答案:

答案 0 :(得分:3)

您应该使用ClassLoader.html#getResourceAsStream

getClassloader().getResourceAsStream(resourcePath);

答案 1 :(得分:0)

如何将文件移动到src / main / resources然后尝试类似 -

ApplicationContext context = new ClassPathXmlApplicationContext("classpath:/test.tpl");

    try {

        context.getClassLoader().getResourceAsStream("test.tpl");

       ...
        } 
   catch (IOException ex) {
        ex.printStackTrace();
    }