前言
在读取properties文件时经常采用的是注解的形式,但有一次在使用时出现了问题,就是该类压根没被spring组件管理bean,因此只能采用以下形式实现properties的读取
错误代码
这样写会发现读取到的都是null。
修改后的代码,通过getProperty()方法去获取如下。
public static String getValue(String fname, String key) {
String val = "";
InputStream in = null;
try {
// val = ResourceBundle.getBundle(fname).getString(key);
Properties p = new Properties();
// p需要InputStream对象进行读取文件,而获取InputStream有多种方法:
// 1、通过绝对路径:InputStream is=new FileInputStream(filePath);
// 2、通过Class.getResourceAsStream(path);
// 通过ClassLoader.getResourceAsStream(path);
in = PropertyReader.class.getClassLoader().getResourceAsStream(fname);
p.load(in);
in.close();
val = p.getProperty(key, null);
} catch (Exception e) {
UnitedLogger.info("读取配置失败[file="+fname+"][key="+key+"]:"+e.getMessage());
}
return val;
}
调用时如下即可获取文件中对应参数
// An highlighted block
private String username = TestClass.getValue("sftp.properties", "sftp.username");
properties文件中配置如下