
package com.spl.save.wmos.base.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.URI; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import java.util.Properties; import java.util.ResourceBundle; import com.spl.kernel.base.util.KnSystemUtils; /** * * PropertiesUtil.java * * @desc properties 资源文件解析工具 * @author Guoxp * @datatime Apr 7, 2013 3:58:45 PM * */ public class PropertiesUtil { private Properties props; private URI uri; private static PropertiesUtil ourInstance = new PropertiesUtil(); public static PropertiesUtil getInstance() { return ourInstance; } public PropertiesUtil(){ } public PropertiesUtil(String fileName){ readProperties(fileName); } private void readProperties(String fileName) { try { props = new Properties(); InputStream fis =getClass().getResourceAsStream(fileName); InputStreamReader re=new InputStreamReader(fis,"utf-8"); props.load(re); uri = this.getClass().getResource("/config/res/wmos_std.properties").toURI(); } catch (Exception e) { e.printStackTrace(); } } /** * 获取某个属性 */ public String getProperty(String key){ return props.getProperty(key); } /** * 获取所有属性,返回一个map,不常用 * 可以试试props.putAll(t) */ public Map getAllProperty(){ Map map=new HashMap(); Enumeration enu = props.propertyNames(); while (enu.hasMoreElements()) { String key = (String) enu.nextElement(); String value = props.getProperty(key); map.put(key, value); } return map; } /** * 在控制台上打印出所有属性,调试时用。 */ public void printProperties(){ props.list(System.out); } /** * 写入properties信息 */ public void writeProperties(String key, String value) { try { OutputStream fos = new FileOutputStream(new File(uri)); props.setProperty(key, value); // 将此 Properties 表中的属性列表(键和元素对)写入输出流 props.store(fos, "『comments』Update key:" + key); } catch (Exception e) { e.printStackTrace(); } } }