配置文件读取工具类--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"));
    }
}

/**
 * 属性工具类
 * @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"));
    }
}

原文地址:https://www.cnblogs.com/cslj2013/p/10387190.html

时间: 2024-11-10 11:08:44

配置文件读取工具类--PropertiesUtil的相关文章

excel读取 工具类

JAVA源码如下: 1 package cn.yongche.utils; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.IOException; 6 import java.io.InputStream; 7 import java.util.ArrayList; 8 import java.util.List; 9 import org.apache.poi.hssf.usermodel

iniread配置文件读取工具【下载】

研究背景 inifile.exe是一个很好的工具,它能快速读取和改写ini配置文件的值,使用一次你就会爱上它.但它有一个缺陷,就是读取变量值的时候只是象type命令一样在屏幕显示变量而已,并没有真正给变量赋值,如果要赋值,得用">"保存命令把显示在屏幕的变量保存在一个bat文件里面,再通过调用该bat文件来赋值,比较麻烦,我也不清楚其作者为何不让其变的更好用一些,幸好改写功能没有此问题.为此本人写了一个iniread.cmd脚本程序,在批处理中用call命令来调用,可轻松地直接读

文件读取工具类读取properties文件

1.创建工具类 import java.io.IOException; import java.util.Properties; /** * * 类名称:PropertiesUtil * 类描述: 文件读取类 * 创建人:Jxufe HeHaiYang * 创建时间:2015-1-20 下午03:14:02 * 修改备注: * @version */ public class PropertiesUtil { private static Properties properties=new Pr

properties文件读取工具类

项目中防止硬编码,经常会将一些与业务相关的数据存在properties文件中,根据不同的key加载不同的数据,所以就会有读取properties文件的东西,这篇文章仅为了以后copy方便写的. 1.添加依赖: <!-- https://mvnrepository.com/artifact/commons-configuration/commons-configuration --><dependency> <groupId>commons-configuration&l

java读取properties的工具类PropertiesUtil

1 package org.properties.util; 2 3 import java.io.FileInputStream; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 import java.io.InputStream; 7 import java.io.OutputStream; 8 import java.util.Properties; 9 10 11 public class Prope

简单的读取配置文件的工具类

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 7.0px Menlo } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 7.0px Menlo; min-height: 8.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 7.0px Menlo; color: #931a68 } span.s1 { color: #931a68 } span.s2

一个读取propeties配置文件的工具类,线程安全的

public class ConfigUtil { private static Map<String,Properties> map = new HashMap<String,Properties>(); /** * 根据Properties文件名称获取Properties对象 * @param name * @return Properties * @throws IOException */ private synchronized static Properties cre

获取配置文件的工具类

import java.io.IOException;import java.io.InputStream;import java.util.Properties;/** * 读取配置文件 * @author zhangrujing * */public enum Config { INSTANCE;        private volatile Properties configuration = new Properties();        public void init() {  

properties文件读写工具类PropertiesUtil.java

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Properties; /** * * @author * */ public class PropertiesUtil { private String prope