【持续更新】几种java中读取配置文件的方法

 

背景:

         在开发过程中,经常会碰到需要用到读取配置文件内容从而达到目的,故在此列几种我自己用到过的读取方法,记录一下,也方便大家查阅方便。

 

情景:

         在使用过程中看情况使用,如果是springboot项目的话,最好直接用方法二,没有springboot可以用方法1结合方法3,将方法一中的

String str = "E:/ssl/ssl.properties";
in = new FileInputStream(str);

     替换为   

in = EppTransportTcpTlsImpl.class.getClassLoader().getResourceAsStream("ssl.properties");

        就不用担心项目移动导致路径变化,也能更方便的发布到服务器上而不用每次都要修改路径。

 

1.通常读取方法:

         需求:通过传入一个字符串,判断调用配置文件里面的哪些配置,并返回对应的map。

/**
 * 这个类提供将配置文件里面的属性根据传入的值提取到对应map里面的方法
 * @author Wzy525110
 */
public class PropertiesToMap {
    /**
     * 这个方法能将配置文件里面的属性根据传入的值提取到对应map里面
     * @param str1
     * @return
     */

    public Map<String,String> getProp(String str1) throws Exception{

        Properties pro = new Properties();
        //初始化
        FileInputStream in = null;
        //创建一个map,key存放配置文件属性的属性名,value存放配置文件属性的属性值
        Map<String,String> testMap = new HashMap<String, String>();
        try {
            //文件的路径及文件名
//            String str = "/usr/local/java/ssl.properties";

            String str = "E:/ssl/ssl.properties";
            in = new FileInputStream(str);
            //读取文件
            pro.load(in);
            //把文件里面的key(属性名)拿出来
            Iterator<String> it=pro.stringPropertyNames().iterator();
            //根据key去遍历
            while(it.hasNext()){
                //如果还有,就给这个key一个值
                String key=it.next();
                //判断这个值是否包含传进来的字符串的值,包含为1,不包含为-1
                if (key.indexOf(str1) != -1){

                    //找到这个key对应的属性
                    String value=pro.getProperty(key);
                    //把遍历的结果放入map里面
                    testMap.put(key,value);}
            }

        } catch (FileNotFoundException e) {
            throw new FileNotFoundException("找不到文件FileNotFoundException,"+this.getClass().getName());
        } catch (IOException e) {
            throw new IOException("IOException,"+this.getClass().getName());
        }finally {
            if(in !=null){
                try {
                    //最后关闭读取
                    in.close();
     
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值