• 配置文件读取类



    定义

    
    package com.wp.tool;
    
    import java.util.Date;
    import java.util.HashMap;
    import java.util.MissingResourceException;
    import java.util.ResourceBundle;
    
    /**
     * 资源文件读取工具
     * @author pengwu7
     * @date 2017年9月7日
     */
    public class PropertiesFileUtil {
    
        // 当打开多个资源文件时,缓存资源文件
        private static HashMap<String, PropertiesFileUtil> configMap = new HashMap<String, PropertiesFileUtil>();
        // 打开文件时间,判断超时使用
        private Date loadTime = null;
        // 资源文件
        private ResourceBundle resourceBundle = null;
        // 默认资源文件名称
        private static final String NAME = "config";
        // 缓存时间
        private static final Integer TIME_OUT = 60 * 1000;
    
        // 私有构造方法,创建单例
        private PropertiesFileUtil(String name) {
            this.loadTime = new Date();
            this.resourceBundle = ResourceBundle.getBundle(name);
        }
    
        public static synchronized PropertiesFileUtil getInstance() {
            return getInstance(NAME);
        }
    
        public static synchronized PropertiesFileUtil getInstance(String name) {
            PropertiesFileUtil conf = configMap.get(name);
            if (null == conf) {
                conf = new PropertiesFileUtil(name);
                configMap.put(name, conf);
            }
            // 判断是否打开的资源文件是否超时1分钟
            if ((new Date().getTime() - conf.getLoadTime().getTime()) > TIME_OUT) {
                conf = new PropertiesFileUtil(name);
                configMap.put(name, conf);
            }
            return conf;
        }
    
        // 根据key读取value
        public String get(String key) {
            try {
                String value = resourceBundle.getString(key);
                return value;
            }catch (MissingResourceException e) {
                return "";
            }
        }
    
        // 根据key读取value(整形)
        public Integer getInt(String key) {
            try {
                String value = resourceBundle.getString(key);
                return Integer.parseInt(value);
            }catch (MissingResourceException e) {
                return null;
            }
        }
    
        // 根据key读取value(布尔)
        public boolean getBool(String key) {
            try {
                String value = resourceBundle.getString(key);
                if ("true".equals(value)) {
                    return true;
                }
                return false;
            }catch (MissingResourceException e) {
                return false;
            }
        }
    
        public Date getLoadTime() {
            return loadTime;
        }
    
    }
    
    


    使用

    
    PropertiesFileUtil.getInstance("config").get("xxx");
    PropertiesFileUtil.getInstance().get("xxx");
    
    
  • 相关阅读:
    【转载】有效防止百度移动搜索转码
    jquery 弥补ie6不支持input:hover状态
    解决 IE6 position:fixed 固定定位问题
    png-24在ie6中的几种透明方法
    Chrome调试小技巧
    html select美化模拟jquery插件select2.js
    响应式设计的十个基本技巧
    colspan和rowspan
    【转】为什么整个互联网行业都缺前端工程师?
    设计模式之桥接模式
  • 原文地址:https://www.cnblogs.com/qixidi/p/10221711.html
走看看 - 开发者的网上家园