学过jdbc的童鞋可能都会写配置文件,但是把配置文件写在根目录下还是包目录下呢?其实都可以,只不过用不同的方法获取而已。
如果是在根目录下,要用FileInputStream来获取输入流,代码如下所示:
/**
* 从根目录下读取键值对
* @throws IOException
*/
@Test
public void test1() throws IOException {
FileInputStream fis = new
FileInputStream("sc.properties");
Properties pros = new Properties();
pros.load(fis);
String user = (String)pros.get("user");
System.out.println("user:" + user);
}
sc.properties是根目录下的文件,里面只有一个键值对:
user=jimi
运行test1方法,结果如下所示:
user:jimi
如果你把配置文件放在包目录下的话,应该要用到ClassLoader(类加载器),代码应该这样写:
/**
* 从包目录下读取键值对
* @throws IOException
*/
@Test
public void test2() throws IOException {
ClassLoader loader =
this.getClass().getClassLoader();
InputStream is =
loader.getResourceAsStream("com\\wwc\\reflect\\jdbc.properties");
Properties pros = new Properties();
pros.load(is);
String user = (String)pros.get("user");
System.out.println("user:" + user);
}
jdbc.properties是com.wwc.reflect包下的,既然是包目录下的你得告诉它是哪个包下的吧,不然你让它哪找去啊?大哥!
jdbc.properties里面就只有一个键值对:
user=root
运行test2,结果如下所示:
user:root
好,至此就讲完了。