读取配置文件公共方法 java

配置文件parameters.properties(放在了/src/ 目录下)

#商汤人脸识别设备相关配置:
senstime.api.app_key            =a814c02128d61907
senstime.api.app_secret         =371d97d7b51660e745b783db05af9b91
senstime.api.app_url            =http://192.168.1.46

Env.java公共类

/**
 * 公共方法。 获得配置parameters.properties配置文件的参数值
 */
package _OA.sensetime.api;

import org.apache.log4j.Logger;

import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.Properties;
import java.io.File;

public class Env {
    private static Logger logger = Logger.getLogger(Env.class.getName());
/**当前系统环境对象的静态实例*/
    private static Env INSTANCE = new Env(); //静态实例
/**环境配置对象的属性*/
    private        File       propfile   = null;          //对应于属性文件的文件对象变量
    private        Properties properties = null;         //属性文件所对应的属性对象变量
    private static Properties DEFAULT_PROPERTIES = null; //记录配置项的默认配置值
/**系统级的常量*/
    public static final String PROP_FILE_NAME = "/parameters.properties";//属性文件名

/**********************************/
/**以下配置的都是配置项的配置名称**/
/**********************************/
    /**sensetime商汤人脸识别 云服务相关参数*/
    public  static String sensetime_url        = "senstime.api.app_url";        //服务器地址
    public  static String sensetime_app_key    = "senstime.api.app_key";        //服务器app_key
    public  static String sensetime_app_secret = "senstime.api.app_secret";     //服务器app_secret


    static {//静态代码块,此类第一次被加载时会被读取(只读取一次)
        /**设置配置项的默认配置*/
        DEFAULT_PROPERTIES = new Properties();
        DEFAULT_PROPERTIES.put(sensetime_url,"http://192.168.1.46---------");
        DEFAULT_PROPERTIES.put(sensetime_app_key,"a814c02128d61907");
        DEFAULT_PROPERTIES.put(sensetime_app_secret,"371d97d7b51660e745b783db05af9b91");

    }

    // 私有的构造方法,用以保证外界无法直接实例化
    private Env()
    {
        super();
        this.propfile = new File(PROP_FILE_NAME);
        try{
            properties = new Properties();
            //FileInputStream is = new FileInputStream(propfile);//java下运行main函数没问题,部署到tomcat后系统就找不到文件了
            InputStream is =this.getClass().getResourceAsStream(PROP_FILE_NAME);
            properties.load(is);
            is.close();
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }

    /**
     * 获取静态实例
     * @return
     */
    public static Env getInstance()
    {
        return INSTANCE;
    }

    /**
     * 构造所有配置项的显示信息
     * @return String
     */
    public static String showAllEnvConfigItem()
    {
        StringBuffer sbTemp = new StringBuffer(128);

        Enumeration enu = INSTANCE.properties.keys();

        if (enu != null)
        {
            String key = "";
            String valString = "";

            while (enu.hasMoreElements())
            {
                key = (String) enu.nextElement();
                //转换字符集
                try
                {
                    valString = INSTANCE.properties.getProperty(key);
                    if(valString != null){
                        valString = new String(valString.getBytes("ISO8859_1"),"GBK");
                    }else{
                        valString = "";
                    }
                }
                catch(Exception e)
                {

                }
                sbTemp.append("EnvItem  "+ key+ " : "+ valString + "\n");
            }
        }

        return sbTemp.toString();
    }

    /**
     * 获取指定名称的配置信息
     * @param name
     * @return
     */
    public static String getEnvConfigItem(String name)
    {
        String val = null;
        //INSTANCE = new Env();
        val = INSTANCE.properties.getProperty(name);
        //对属性文件的内容进行转码
        //之所以不在load入文件的时候统一做转码,
        //是因为在往Properties里set之后,之前做的转码工作无效,
        //可能在Hashtable的put方法里再对值进行了转码
        //这是测试后得出的结论
        if(val != null)
        {
            try
            {
                val = new String(val.getBytes("ISO8859_1"),"GBK");
            } catch (UnsupportedEncodingException e)
            {
            }
        }
        //如果未配置,则读取默认值
        if (val == null)
        {
            val = DEFAULT_PROPERTIES.getProperty(name);
        }

        return val;
    }

}

使用:

String  url     =   Env.getEnvConfigItem(Env.sensetime_url)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值