ResourceBundle类是java提供的一个读取properties文件(配置文件)的一种方法。
文件中以#开头做为注释,下面是我的数据库连接的配置文件
1
2
3
4
5
6
7
8
9
|
#数据库配置信息
DRIVER=com.mysql.jdbc.Driver
URL=jdbc:mysql:
//localhost:3306/test
user=rwuser
password=rwuser
#路径配置信息
path=D:\\Java\\jdk1.
6
.0_31\\bin
|
下面是我使用ResourceBundle类处理:
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package
iceinfo.bat.test;
import
java.util.ResourceBundle;
public
class
TestResourceBundle {
public
static
void
main(String[] args) {
String fileName=
"config"
;
// config.properties它跟普通java类的命名规则完全一样:
// - 文件名和包名是区分大小写
// - 扩展名 .properties 省略
// - 资源文件必须位于classpath下,如果在某个包下成在定义fileName时要加上包的名称,且包名区分大小写
// 如果是Web项目,不写包路径可以,此时将资源文件放在WEB-INF\classes\目录下就可以。
ResourceBundle paramBundle = ResourceBundle.getBundle(fileName);
System.out.println(paramBundle.getString(
"DRIVER"
));
System.out.println(paramBundle.getString(
"URL"
));
System.out.println(paramBundle.getString(
"user"
));
System.out.println(paramBundle.getString(
"PASSWORD"
));
//这儿是区分大小写的
System.out.println(paramBundle.getString(
"path"
));
}
}
|
注:如果fileName的名字中大小写或没有加入properies文件所在的包名那么会报
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name config1, locale zh_CN
如果在获取properties文件中的key对应的value值时如果没有区分小写会报
Exception in thread "main" java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key PASSWORD