一、什么事properties文件
1、properties文件是一个文本文件,扩展名为.properties。
2、properties文件的语法有两种,一种是注释,一种属性配置。
注 释:前面加上#号
属性配置:以“键=值”的方式书写一个属性的配置信息。
3、properties文件的一个属性配置信息值可以换行,但键不可以换行。值换行用“\”表示。
4、properties的属性配置键值前后的空格在解析时候会被忽略。
5、properties文件可以只有键而没有值。也可以仅有键和等号而没有值,但无论如何一个属性配置不能没有键。
例如
#以下是良好格式的properties文件
key1=name1
key2=name2
#以下是非良好格式properties文件
key1 = name1
key2=aaaa\bbbb
cccc
二、认识java.util.Properties类
1、Properties类的层次结构
java.lang.Object
java.util.Dictionary<K,V>
java.util.Hashtable<Object,Object>
java.util.Properties
从层次机构看,Properties类实现了Map接口,因为HashTable实现了Map接口,
因此Properties类本质上是一种简单的Map容器。
实际上,Properties类本身表示了对一种Map结构的操作。
properties文件本身就表示了一个“键值对”的集合。因 此,Properties类属于集合容器的家族,在使用前应该创建一个Properties的容器,实际上就是创建一个默认不带参数的 Properties对象。以后通过别的方式给里面添加“键值对”。
2、properties文件与Properties类的关系
通过properties文件可以填充Properties类。
也可以通过xml文件来填充Properties类。
可以通过绝对路径方式加载Properties文件信息,也可以使用相对路径加载。
a.使用绝对路径加载properties文件
public void getProperties() throws IOException{
InputStream input = newFileInputStream("d:\\jdbc.properties");
Properties prop = new Properties();
prop.load(input);
for(Object key : prop.keySet()){
System.out.println(key + "=" + prop.get(key));
}
}
a.使用相对路径加载properties文件
public void getProperties() throws IOException{
Properties prop = new Properties();
prop.load(this.class.getResourceAsStream("datasource/jdbc.properties"));
for(Object key : prop.keySet()){
System.out.println(key + "=" + prop.get(key));
}
}
当然,java.util.Properties类中还有一些其他常用的方法,使用时记得查看api文档哦,呵呵呵!