配置文件读取工具类--PropertiesUtil

Posted cslj2013

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置文件读取工具类--PropertiesUtil相关的知识,希望对你有一定的参考价值。

 

技术图片
/**
 * 属性工具类
 * @author admin
 * 参考:https://www.cnblogs.com/doudouxiaoye/p/5693454.html
 */
public class PropertiesUtil {
    private static Properties pro=null;
    private static Map<String,Object> map=new HashMap<String, Object>();
    
    //静态块中加载
    static {
        //读取多个配置文件
        init("b.properties");//类路径下直接使用文件名,文件加载方式要全路径名
//        init("fileName2");
    }
    
    //读取配置文件操作
    private static void init(String fileName) {
        try {
            pro = new Properties();
            //文件方式
//            pro.load(new FileInputStream(new File(fileName)));
            //类加载器方式
            pro.load(PropertiesUtil.class.getClassLoader().getResourceAsStream(fileName));
            
          //可遍历properties的key和value
            //方式一  key(string)集合
           /* for (String key : pro.stringPropertyNames()) {
                System.out.println(key + "=" + pro.getProperty(key));
                //存入map中
                map.put(key, pro.getProperty(key));//string
                map.put(key, pro.get(key));//对象
            }*/
            
          //方式二  key(对象)集合
           /* Set<Object> keys=pro.keySet();
            for (Object key : keys) {
                System.out.println(key + "=" + pro.get(key));
                //存入map中
                map.put(key.toString(), pro.get(key));
            }*/
            
          //方式三  键值对集合(全面)
            Set<Map.Entry<Object, Object>> entrySet = pro.entrySet();//返回的属性键值对实体
            for (Map.Entry<Object, Object> entry : entrySet) {
                System.out.println(entry.getKey() + "=" + entry.getValue());
              //存入map中
                map.put(entry.getKey().toString(), entry.getValue());
            }
            //或迭代器方式
            Iterator<Entry<Object, Object>> it=entrySet.iterator();
            while(it.hasNext()) {
                Map.Entry<Object, Object> entry =it.next();
                System.out.println(entry.getKey() + "=" + entry.getValue());
                //存入map中
                map.put(entry.getKey().toString(), entry.getValue());
            }
            
          //方式三  Enumeration(传统接口)
           /* Enumeration<?> e = pro.propertyNames();
            while (e.hasMoreElements()) {
                String key = (String) e.nextElement();
                String value = pro.getProperty(key);
                System.out.println(key + "=" + value);
              //存入map中
                map.put(key, value);
            }*/

            
          //保存属性到b.properties文件
//            FileOutputStream oFile = new FileOutputStream("b.properties", true);//true表示追加打开
//            pro.setProperty("phone", "10086");
//            pro.store(oFile, "The New properties file");
//            oFile.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 简单调用方式
     */
    //方式1:静态方法调用
    public static String getValue(String key) {
        return pro.getProperty(key);
    }

    //方式2:静态常量调用
    public static final String FILE_NAME=pro.getProperty("fileName");
    
    public static void main(String[] args) {
        System.out.println("调用方式1 "+PropertiesUtil.pro.getProperty("fileName"));
        System.out.println("调用方式2 "+PropertiesUtil.FILE_NAME);
        System.out.println("调用方式3 "+PropertiesUtil.getValue("fileName"));
    }
}
View Code
/**
 * 属性工具类
 * @author admin
 * 参考:https://www.cnblogs.com/doudouxiaoye/p/5693454.html
 */
public class PropertiesUtil {
    private static Properties pro=null;
    private static Map<String,Object> map=new HashMap<String, Object>();
    
    //静态块中加载
    static {
        //读取多个配置文件
        init("b.properties");//类路径下直接使用文件名,文件加载方式要全路径名
//        init("fileName2");
    }
    
    //读取配置文件操作
    private static void init(String fileName) {
        try {
            pro = new Properties();
            //文件方式
//            pro.load(new FileInputStream(new File(fileName)));
            //类加载器方式
            pro.load(PropertiesUtil.class.getClassLoader().getResourceAsStream(fileName));
            
          //可遍历properties的key和value
            //方式一  key(string)集合
           /* for (String key : pro.stringPropertyNames()) {
                System.out.println(key + "=" + pro.getProperty(key));
                //存入map中
                map.put(key, pro.getProperty(key));//string
                map.put(key, pro.get(key));//对象
            }*/
            
          //方式二  key(对象)集合
           /* Set<Object> keys=pro.keySet();
            for (Object key : keys) {
                System.out.println(key + "=" + pro.get(key));
                //存入map中
                map.put(key.toString(), pro.get(key));
            }*/
            
          //方式三  键值对集合(全面)
            Set<Map.Entry<Object, Object>> entrySet = pro.entrySet();//返回的属性键值对实体
            for (Map.Entry<Object, Object> entry : entrySet) {
                System.out.println(entry.getKey() + "=" + entry.getValue());
              //存入map中
                map.put(entry.getKey().toString(), entry.getValue());
            }
            //或迭代器方式
            Iterator<Entry<Object, Object>> it=entrySet.iterator();
            while(it.hasNext()) {
                Map.Entry<Object, Object> entry =it.next();
                System.out.println(entry.getKey() + "=" + entry.getValue());
                //存入map中
                map.put(entry.getKey().toString(), entry.getValue());
            }
            
          //方式三  Enumeration(传统接口)
           /* Enumeration<?> e = pro.propertyNames();
            while (e.hasMoreElements()) {
                String key = (String) e.nextElement();
                String value = pro.getProperty(key);
                System.out.println(key + "=" + value);
              //存入map中
                map.put(key, value);
            }*/

            
          //保存属性到b.properties文件
//            FileOutputStream oFile = new FileOutputStream("b.properties", true);//true表示追加打开
//            pro.setProperty("phone", "10086");
//            pro.store(oFile, "The New properties file");
//            oFile.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 简单调用方式
     */
    //方式1:静态方法调用
    public static String getValue(String key) {
        return pro.getProperty(key);
    }

    //方式2:静态常量调用
    public static final String FILE_NAME=pro.getProperty("fileName");
    
    public static void main(String[] args) {
        System.out.println("调用方式1 "+PropertiesUtil.pro.getProperty("fileName"));
        System.out.println("调用方式2 "+PropertiesUtil.FILE_NAME);
        System.out.println("调用方式3 "+PropertiesUtil.getValue("fileName"));
    }
}

 

以上是关于配置文件读取工具类--PropertiesUtil的主要内容,如果未能解决你的问题,请参考以下文章

java读取properties的工具类PropertiesUtil

properties文件读写工具类PropertiesUtil.java

Mendmix代码解析:百搭的配置文件读取工具ResourceUtils

Mendmix代码解析:百搭的配置文件读取工具ResourceUtils

Mendmix代码解析:百搭的配置文件读取工具ResourceUtils

单例模式PropertiesUtil工具类