zoukankan      html  css  js  c++  java
  • 配置文件读取类


    定义

    
    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");
    
    
  • 相关阅读:
    时空权衡之计数排序
    何时发生隐式类型转换
    常量指针与指针常量的区别
    虚函数有关面试题
    C++中数组定义及初始化
    InputStream类的available()方法
    FORK()函数
    面向对象三大基本特性,五大基本原则
    SpringMVC工作原理
    java文件的上传
  • 原文地址:https://www.cnblogs.com/qixidi/p/10221711.html
Copyright © 2011-2022 走看看