您的位置:首页 > 运维架构

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

2015-05-17 22:51 393 查看
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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: