[align=center][color=red]1. 认识properties文件[/color][/align]
1、properties文件是一个文本文件
2、properties文件的语法有两种,一种是注释,一种属性配置。
注 释:前面加上#号
属性配置:以“键=值”的方式书写一个属性的配置信息。
3、properties文件的一个属性配置信息值可以换行,但键不可以换行。值换行用“\”表示。
4、properties的属性配置键值前后的空格在解析时候会被忽略。
5、properties文件可以只有键而没有值。也可以仅有键和等号而没有值,但无论如何一个属性配置不能没有键。
[align=center][color=red]2. 解读java.util.Properties类[/color][/align]
从层次机构看,Properties类实现了Map接口,因为HashTable实现了Map接口,因此Properties类本质上是一种简单的Map容器。
实际上,Properties类本身表示了对一种Map结构的操作。properties文件本身就表示了一个“键值对”的集合。因此,Properties类属于集合容器的家族,在使用前应该创建一个Properties的容器,实际上就是创建一个默认不带参数的Properties对象。以后通过别的方式给里面添加“键值对”。
[align=center][color=red]3. 常用方法:[/color][/align]
在web项目中,常用如下方法:
如果直接采用
1、properties文件是一个文本文件
2、properties文件的语法有两种,一种是注释,一种属性配置。
注 释:前面加上#号
属性配置:以“键=值”的方式书写一个属性的配置信息。
3、properties文件的一个属性配置信息值可以换行,但键不可以换行。值换行用“\”表示。
4、properties的属性配置键值前后的空格在解析时候会被忽略。
5、properties文件可以只有键而没有值。也可以仅有键和等号而没有值,但无论如何一个属性配置不能没有键。
#格式良好的properties文件
aaa=111
bbb=222
[align=center][color=red]2. 解读java.util.Properties类[/color][/align]
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对象。以后通过别的方式给里面添加“键值对”。
[align=center][color=red]3. 常用方法:[/color][/align]
在web项目中,常用如下方法:
/**
*
*/
package com.ruijie.test;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
*
*/
public class Test {
/**
*
* @Description : 加载一个Properties 资源
* 采用下面的方法时候,路径是在WEB-INF\classes(对应的src目录)开始
* 如果要到上级目录则可以用过../
*/
public static void getProperties(){
InputStream in = Test.class.getClassLoader().getResourceAsStream("log4j.properties");
Properties properties = new Properties();
try {
// 加载流
properties.load(in);
// 获得数据
properties.getProperty("log4j.rootLogger");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
getProperties();
}
}
如果直接采用
// 这个将相对于tomcat的bin目录
Properties properties = getConfigProperties("config.properties");