java properties配置文件操作

Posted

tags:

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

实现运用Java.util.Properties来进行对.properties配置文件操作。

配置文件实例:如debug.properties 

#Tue Mar 21 15:46:17 CST 2017

#key=value

remote.debug.prot=7451


  1. 第一步写个获取文件路径的外部方法

    //-in- String filePath:配置文件名如debug.properties--

    //-return- 文件类对象--

 

public static File getFile (String filePath){

    try{

    ClassLoader classLoader = Thread.currentThread()

.getContextClassLoader();

URL url = classLoader.getResource(filePath);

   return new File(url.toURI());

    }catch(Exception e){

    LOG.error("配置文件错误",e);

    return null;

    }

    }

2.1根据key获取value值方法

//-in- String filePath:配置文件名如debug.properties--

//-in- key:键值如remote.debug.prot--

//-return- value值--

   

public static String getValueByKey(String filePath, String key){

    InputStream in = null; 

    try {

        File fileURI = PropertiesUtil.getFile(filePath);

            in = new BufferedInputStream (new FileInputStream(fileURI));  

            Properties pps = new Properties();

            pps.load(in);

            return pps.getProperty(key);

        }catch (Exception e) {

            LOG.error("初始化配置文件失败",e);

            return null;

        }finally{

        try {

in.close();

} catch (IOException e) {

e.printStackTrace();

}

        }

    }

    

2.2得到所有HashMap<key,value>方法

//-in- String filePath:配置文件名如debug.properties--

//-return-  HashMap<String, String>: HashMap<key, value>--

   

public static Map<String, String> getAllProperties(String filePath){

        Map<String, String> proper = new HashMap<String, String>();

        InputStream in = null;

    try{

    File fileURI = PropertiesUtil.getFile(filePath);

       Properties pps = new Properties();

       in = new BufferedInputStream(new FileInputStream(fileURI));

       pps.load(in);

       Enumeration<?> en = pps.propertyNames(); //得到配置文件的名字

       while(en.hasMoreElements()) {

           String strKey = (String) en.nextElement();

           String strValue = pps.getProperty(strKey);

           proper.put(strKey, strValue);

       }

    }catch(Exception e)

    {

    LOG.error("获取所有配置文件信息失败",e);

    return null;

    }finally{

    try {

in.close();

} catch (IOException e) {

e.printStackTrace();

}

    }

        return proper;

    }


2.3根据key获取value值方法

//-in- String filePath:配置文件名如debug.properties--

//-in- pKey:  键值如remote.debug.prot--

//-in- pValue: 结果值如 2000--

//-return- 状态值--

   

 public static String setValueByKey (String filePath, String pKey, String pValue){

    InputStream in = null;

    OutputStream out = null;

    try{

File fileURI = PropertiesUtil.getFile(filePath);

    Properties pps = new Properties();

       in = new FileInputStream(fileURI);

       pps.load(in);

       out = new FileOutputStream(fileURI);

       pps.setProperty(pKey, pValue);

       pps.store(out, "");

       return TRUE;

       }catch(Exception e)

       {

      LOG.error("插入配置文件失败", e);

      return null;

       }

       finally{

     try {

in.close();

out.close();

} catch (IOException e) {

e.printStackTrace();

}  

       }

    }

   

2.3写入所有key,value值方法

//-in- String filePath:配置文件名如debug.properties--

//-in- HashMap<String, String>:  键值对HashMap<key, value>如remote.debug.prot=900--

//-return- 状态值--

   

 public static String setAllProperties(String filePath,Map<String, String> kv) {

    InputStream in = null;

    OutputStream out = null;

    try{

    File fileURI = PropertiesUtil.getFile(filePath);

        Properties pps = new Properties();

            in = new FileInputStream(fileURI);

            pps.load(in);

            out = new FileOutputStream(fileURI);

            Iterator<Entry<String, String>> iter = kv.entrySet().iterator();

            while (iter.hasNext()) {

            @SuppressWarnings("rawtypes")

Map.Entry entry = (Map.Entry) iter.next();

            Object key = entry.getKey();

            Object val = entry.getValue();

            pps.setProperty((String)key, (String)val);

           

            }

            pps.store(out, "");

    }catch(Exception e)

    {

    LOG.error("插入配置文件失败", e);

    return null;

    }

    finally{

       try {

  in.close();

  out.close();

  } catch (IOException e) {

  e.printStackTrace();

 

        }

    return TRUE;

    }


本文出自 “诗意生活” 博客,请务必保留此出处http://whish.blog.51cto.com/10679902/1911710

以上是关于java properties配置文件操作的主要内容,如果未能解决你的问题,请参考以下文章

java对.properties配置文件操作

JAVA操作properties文件

001java中配置文件properties的操作

对Java配置文件Properties的读取写入与更新操作

properties配置文件读取操作总结java笔记

Java中Properties类的操作