maven工程有专门的resources文件夹存储静态资源,但有时我们有将静态文件与class并列的情况,此时需要在maven中添加如下配置:

<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.properties</include>
        </includes>
    </resource>
    <resource>
        <directory>src/resources</directory>
    </resource>
</resources>

表示包含静态文件的路径。
另,关于java读取静态资源,分为绝对路径相对路径两种方式
绝对路径表示以src为根目录,以“/”为起始字符的文件内容。而相对路径表示与当前类并列的位置,不需要加“/”。

private static String PROPERTIESFILE = "conn.properties";
public static void main(String[] args) throws IOException {
    Pool pool = new Pool();
    pool.load();
}
private void load() throws IOException {
    // 相对路径
    InputStream is = this.getClass().getResourceAsStream("" + PROPERTIESFILE);
    // 绝对路径
    InputStream is = this.getClass().getResourceAsStream("/" + PROPERTIESFILE);
    // 另一种方式 - 此方法会遍历路径寻找,所以不需要加“/”
    InputStream is = ClassLoader.getSystemResourceAsStream(PROPERTIESFILE);
    Properties p = new Properties();
    p.load(is);
    System.out.println(p.getProperty("hello"));
}

yizheng
301 声望27 粉丝

一蓑烟雨任平生


引用和评论

0 条评论