读取classpath下的文件
-
从classpath读取文件就可以避免不同环境下文件路径不一致的问题:如果我们把default.properties文件放到classpath中,就不用关心它的实际存放路径。
-
在classpath中的资源文件,路径总是以/开头,我们先获取当前的Class对象,然后调用getResourceAsStream()就可以直接从classpath读取任意的资源文件
try (InputStream input = getClass().getResourceAsStream("/default.properties")) {
// TODO:
}
- 调用getResourceAsStream(),如果文件不存在则会返回null,所以在使用之前要判空
try (InputStream input = getClass().getResourceAsStream("/default.properties")) {
if (input != null) {
// TODO:
}
}
加载配置文件:
Properties props = new Properties();
props.load(inputStreamFromClassPath("/default.properties"));
props.load(inputStreamFromFile("./conf.properties"));
参考:https://www.liaoxuefeng.com/wiki/1252599548343744/1298366384308257