两种解析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();
}
}
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();
}
}
相关文章推荐
- JAVA中properties配置文件的两种读取方式
- java程序读取properties配置文件的两种方式,备忘
- Spring加载properties文件的两种方式
- 详解SpringMVC加载配置Properties文件的几种方式
- spring 配置国际化资源文件的两种方式(转)
- 在spring中获取properties文件键值对的两种方式
- spring+hibernate 两种整合方式配置文件
- 【spring boot】配置文件 application.properties 属性解析
- DOM方式解析XML配置文件,将数据保存成数组
- spring 配置加载外部文件的两种方式
- hibernate加载配置文件的两种方式
- mybatis 加载配置文件的方法(两种方式)
- JavaWeb读取配置文件路径的两种方式
- Spring加载properties文件的两种方式
- Spring加载properties文件的两种方式实例详解
- spring 配置国际化资源文件的两种方式
- java读取properties文件的两种方式
- spring中关于对jdbc.properties使用的两种配置方式
- Spring 读取XML配置文件的两种方式
- 加载不同位置的配置文件的两种方式