上篇文章说过配置文件读取的公用方法,但是目前工程打成jar包后,直接用jdk执行发现系统找不到配置文件路径,意识到这种读取配置文件的方式可能存在一定的局限性,因此搜索一些资料对配置文件读取方式作出如下修改。
public class PropertiesLoader {
private final static Logger LOG = Logger.getLogger(PropertiesLoader.class);
public static Properties properties;
private static String filePath = "/resource/";
public PropertiesLoader(String fileName) {
InputStream in = null;
try{
properties = new Properties();
in = PropertiesLoader.class.getClassLoader().getClass().getResourceAsStream(filePath+fileName);
properties.load(in);
}catch(Exception e){
e.printStackTrace();
LOG.error("配置文件解析错误");
}finally{
if(in != null){
try{
in.close();
}catch(Exception e){
e.printStackTrace();
LOG.error("文件输入流解析错误");
}
}
}
}
public String getProperty(String key) {
String value = properties.getProperty(key);
return value;
}
}
filePath最前面的“ / ”代表工程的根目录,相当于上篇文章所说的src目录,如果前面没有 “ / ” 则代表当前类的目录,将先前的方法替换成InputStream is = this.getClass().getResourceAsStream(fileName)。