java项目中读取Properties文件
java项目中读取property文件还是相当简单的。
这里会涉及到一个Properties类。这里简单介绍一下Properties类。
上图是Properties类的继承关系,可以看到Properties类继承自Hashtable类。
Properties类表示持久化的set数据。可以通过stream获取,也可以保存到stream中。
在Properties中,key和value都是String类型。
下面是我自定义(好吧,其实是曾老师的代码改了改)的 读取java项目中的Properties文件 的工具类。
/*** Properties工具类
* @author admin
*
*/
public class PropertyUtils {
private static Properties properties;
private File file = null;
private static long lastModified = 0L;
private static String DEFAULT_VALUE = null;
private static Log log = LogFactory.getLog(PropertyUtils.class);
private static String PROPERTIE_FILE_NAME = null;
/**
* 构造函数
* @param propertyFileName
*/
private PropertyUtils(String propertyFileName) {
try {
PROPERTIE_FILE_NAME = propertyFileName;
Resource resource = new ClassPathResource(PROPERTIE_FILE_NAME);
file = resource.getFile();
lastModified = file.lastModified();
if (lastModified == 0) {
log.error(PROPERTIE_FILE_NAME + " file does not exist!");
}
properties = new Properties();
properties.load(resource.getInputStream());
} catch (IOException e) {
log.error("can not read config file " + PROPERTIE_FILE_NAME);
}
log.debug(PROPERTIE_FILE_NAME + " loaded.");
}
/**
* 获取实例
* @param propertyFileName
* @return
*/
public static PropertyUtils getInstance(String propertyFileName) {
return new PropertyUtils(propertyFileName);
}
/**
* 获取配置文件中的Property
* @param key
* @return
*/
public final String getProperty(String key) {
return getProperty(key, DEFAULT_VALUE);
}
public final String getProperty(String key, String defaultValue) {
long newTime = file.lastModified();
if (newTime == 0) {
return defaultValue;
} else if (newTime > lastModified) {
try {
properties.clear();
Resource resource = new ClassPathResource(PROPERTIE_FILE_NAME);
properties.load(new FileInputStream(resource.getFile()));
} catch (Exception e) {
e.printStackTrace();
}
}
lastModified = newTime;
return properties.getProperty(key) == null ? defaultValue : properties
.getProperty(key);
}
}
使用方法很简单,如下
String urlStr = PropertyUtils.getInstance("url.properties").getProperty("save.url");
以上是 java项目中读取Properties文件 的全部内容, 来源链接: utcz.com/z/394716.html