Properties文件载入工具类
来源:互联网 发布:淘宝活动策划方案 编辑:程序博客网 时间:2024/06/06 19:17
import java.io.IOException;import java.io.InputStream;import java.util.NoSuchElementException;import java.util.Properties;import org.apache.commons.io.IOUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.core.io.DefaultResourceLoader;import org.springframework.core.io.Resource;import org.springframework.core.io.ResourceLoader;/** * Properties文件载入工具类. 可载入多个properties文件, 相同的属性在最后载入的文件中的值将会覆盖之前的值,但以System的Property优先. */public class PropertiesLoader {private static Logger logger = LoggerFactory.getLogger(PropertiesLoader.class);private static ResourceLoader resourceLoader = new DefaultResourceLoader();private final Properties properties;public PropertiesLoader(String... resourcesPaths) {properties = loadProperties(resourcesPaths);}public Properties getProperties() {return properties;}/** * 取出Property,但以System的Property优先,取不到返回空字符串. */private String getValue(String key) {String systemProperty = System.getProperty(key);if (systemProperty != null) {return systemProperty;}if (properties.containsKey(key)) { return properties.getProperty(key); } return "";}/** * 取出String类型的Property,但以System的Property优先,如果都为Null则抛出异常. */public String getProperty(String key) {String value = getValue(key);if (value == null) {throw new NoSuchElementException();}return value;}/** * 取出String类型的Property,但以System的Property优先.如果都为Null则返回Default值. */public String getProperty(String key, String defaultValue) {String value = getValue(key);return value != null ? value : defaultValue;}/** * 取出Integer类型的Property,但以System的Property优先.如果都为Null或内容错误则抛出异常. */public Integer getInteger(String key) {String value = getValue(key);if (value == null) {throw new NoSuchElementException();}return Integer.valueOf(value);}/** * 取出Integer类型的Property,但以System的Property优先.如果都为Null则返回Default值,如果内容错误则抛出异常 */public Integer getInteger(String key, Integer defaultValue) {String value = getValue(key);return value != null ? Integer.valueOf(value) : defaultValue;}/** * 取出Double类型的Property,但以System的Property优先.如果都为Null或内容错误则抛出异常. */public Double getDouble(String key) {String value = getValue(key);if (value == null) {throw new NoSuchElementException();}return Double.valueOf(value);}/** * 取出Double类型的Property,但以System的Property优先.如果都为Null则返回Default值,如果内容错误则抛出异常 */public Double getDouble(String key, Integer defaultValue) {String value = getValue(key);return value != null ? Double.valueOf(value) : defaultValue;}/** * 取出Boolean类型的Property,但以System的Property优先.如果都为Null抛出异常,如果内容不是true/false则返回false. */public Boolean getBoolean(String key) {String value = getValue(key);if (value == null) {throw new NoSuchElementException();}return Boolean.valueOf(value);}/** * 取出Boolean类型的Property,但以System的Property优先.如果都为Null则返回Default值,如果内容不为true/false则返回false. */public Boolean getBoolean(String key, boolean defaultValue) {String value = getValue(key);return value != null ? Boolean.valueOf(value) : defaultValue;}/** * 载入多个文件, 文件路径使用Spring Resource格式. */private Properties loadProperties(String... resourcesPaths) {Properties props = new Properties();for (String location : resourcesPaths) {//logger.debug("Loading properties file from:" + location);InputStream is = null;try {Resource resource = resourceLoader.getResource(location);is = resource.getInputStream();props.load(is);} catch (IOException ex) {logger.info("Could not load properties from path:" + location + ", " + ex.getMessage());} finally {IOUtils.closeQuietly(is);}}return props;}}
阅读全文
0 0
- 工具类: Properties文件载入
- Properties文件载入工具类
- Properties文件载入工具类
- Properties属性文件载入、读取工具类
- properties文件工具类
- 载入和保存properties文件
- Properties资源文件工具类
- Properties文件读取工具类
- 获取properties文件工具类
- 读取properties文件,工具类。
- 加载properties文件工具类
- Properties文件读取工具类
- Properties文件读取工具类
- 读取properties文件工具类
- properties文件读取工具类
- 能保存Properties文件注释的Properties工具类
- Properties的工具类,用于读取外部文件Properties
- 读取properties文件的工具类
- 历届试题 网络寻路
- spliterators
- postgreSQL 用户、角色、权限、数据库的简单使用
- 【网络优化】超轻量级网络SqueezeNet算法详解
- 1.MYSQL & InnoDB体系结构
- Properties文件载入工具类
- java WebService简单教程
- Android线程—主要方法
- extjs grid的列表示金额的数字显示为千分位
- ubuntu 查找可安装软件
- 百度网盘真实地址
- sws_getContext()
- Context概念
- 添加tomcat服务