package com.test.demo;
import java.util.Properties;
import java.io.InputStream;
import java.io.IOException;
/**
* 读取Properties文件的例子
* File: TestProperties.java
*/
public final class TestProperties {
private static String param1;
private static String param2;
private static String param3;
private static String param4;
/**
* 对于以上的配置文件的路径名,有一个容易忽视的问题,
* 那就是当你用Object.class.getClassLoader().get...的时候,是都可以不用要加“/”,
* 但是不用getClassLoader().的时候是不行的,这是什么原因呢?
* 由于这个配置文件是放在项目的src下的,在object加载的时候要加上“/”。
* 如果是将这个配置文件拷贝到类得同包下,则不需要加,如果是用下面的方式读取配置文件:
*/
static {
Properties prop = new Properties();
//InputStream in = Object.class.getResourceAsStream("/test.properties"); // 文件在src下
//InputStream in = TestProperties.class.getClassLoader().getResourceAsStream("jdbc.properties"); // 文件在src下
InputStream in = TestProperties.class.getResourceAsStream("jdbc.properties");//文件在同一个包下
try {
prop.load(in);
param1 = prop.getProperty("mysql.driverClassName").trim();
param2 = prop.getProperty("mysql.url").trim();
param3 = prop.getProperty("mysql.username").trim();
param4 = prop.getProperty("mysql.password").trim();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 私有构造方法,不需要创建对象
*/
private TestProperties() {
}
public static String getParam1() {
return param1;
}
public static String getParam2() {
return param2;
}
public static String getParam3() {
return param3;
}
public static String getParam4() {
return param4;
}
public static void main(String args[]){
System.out.println(getParam1());
System.out.println(getParam2());
System.out.println(getParam3());
System.out.println(getParam4());
}
}