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();
        }
    }       

}

最新文章

  1. js笔记
  2. (实用篇)php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
  3. CBOW Model Formula Deduction
  4. C#:注册机的实现【提供源代码下载】
  5. C#结构体的特点浅析
  6. 将博客搬至CSDN(放弃)
  7. 36.Altium Designer(Protel)网络连接方式Port和Net Label详解
  8. getchar(),gets(),scanf()的差异比较
  9. Oracle表锁住处理
  10. 用tomcat6自定义域名
  11. 《分布式Java应用之基础与实践》读书笔记二
  12. 论文写作office实用技巧
  13. Django之ORM字段和参数
  14. 二、OpenStack—keystone组件介绍与安装
  15. 在docker中运行.netcore程序
  16. java 基础03 继承
  17. KMP算法——从入门到懵逼到了解
  18. Python进阶【第三篇】Python中的基本数据类型
  19. async与await 实例
  20. 未能加载文件或程序集“AjaxControlToolkit”或它的某一个依赖项

热门文章

  1. phpMyAdmin安装部署
  2. PPK提供的浏览器类型及版本检测方法
  3. centOS(redhat/oracle linux更换语言
  4. Github 开源:使用升讯威 Mapper( Sheng.Mapper)与 AutoMapper 互补,大幅提高开发效率!
  5. 安徽省2016“京胜杯”程序设计大赛_H_单身晚会
  6. java.lang.NoSuchMethodError:android.content.Context.getDrawable
  7. IPython使用学习笔记
  8. c++类与初始化,const
  9. MySQL如何记录binlog
  10. DB2的日志理解难点