两种解析properties配置文件的方式

package com.mhc.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
 *
 *    两种方法解析Properties文件,其实是一种,只是寻找路径的方式不同,
 *    一种采用相对的路径,一种是绝对的
 *    两种方式可根据代码位置和目标文件位置是否在两层内随机应变
 */
public class ParseProperties {
    //第一种方法 : 采用绝对路径方法
    public static void parseProperties1(){
        //用java的getProperty获得user.dir的系统属性的路径
        String filePath = System.getProperty("user.dir")+"/src/db.properties";
        System.out.println(filePath);
        //生成文件对象
        File file = new File(filePath);
        //生成文件输入流
        FileInputStream in = null;
        try {
            in = new FileInputStream(file);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        //生成properties对象
        Properties p =  new Properties();
        try {
            p.load(in);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //输出properties文件的内容
        System.out.println("driver        "+p.getProperty("jdbc.driver"));
        System.out.println("UserName    "+p.getProperty("jdbc.userName"));
        System.out.println("passWord    "+p.getProperty("jdbc.passWord"));
        System.out.println("jdbcUrl    "+p.getProperty("jdbc.jdbcUrl"));
    }
    
    //第二种方法  :采用相对定位方法
    public static void parseProperties2(){
        //输入流
//        String path = ParseProperties.class.getResource(".").getFile().toString();
//        //  /H:/JavaLearning/MicroMessage/WebRoot/WEB-INF/classes/com/mhc/test
//        //以'/'开头的是绝对路径
//        path = path.split("/W")[0]+"/src/db.properties";
//        System.out.println(path);
        /**
         * 用AsStream这个函数会自动从当前目录为根目录进行查找,所以在两层以内可以用./或者../寻找像对的路径
         * 因为我的放置路径不在两层之内,不便实现,有兴趣的话可以自行挪动到两层之内在实现
         */
        InputStream in = ParseProperties.class.getResourceAsStream("../db.properties");
        //这里获取的in为null,修改方法上面已说清楚
        //生成properties对象
        Properties p =  new Properties();
        try {
            p.load(in);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //输出properties文件的内容
        System.out.println("driver        "+p.getProperty("jdbc.driver"));
        System.out.println("UserName    "+p.getProperty("jdbc.userName"));
        System.out.println("passWord    "+p.getProperty("jdbc.passWord"));
        System.out.println("jdbcUrl    "+p.getProperty("jdbc.jdbcUrl"));
    }
    public static void main(String[] args) {
        parseProperties2();
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值