在程序中遇到这个,感觉会比较重要,就学习一番。
一:静态读取配置文件的Demo
1.新建工程
2.新建properties
3.新建Java的demo程序
注意不要写properties。
1 package com.jun.it;
2
3 import java.util.ResourceBundle;
4
5 public class ResourceBundleDemo {
6 /**
7 * 测试ResourceBundle.getBundle
8 * @param args
9 */
10 public static void main(String[] args) {
11 ResourceBundle resourceBundle=ResourceBundle.getBundle("project");
12 System.out.println(resourceBundle.getString("projectName"));
13 }
14
15 }
4.效果
二:国际化读取文件
1.新建两个properties
2.新建测试类
1 package com.jun.it;
2
3 import java.util.ResourceBundle;
4
5 public class ResourceBundleDemo {
6 /**
7 * 测试ResourceBundle.getBundle
8 * @param args
9 */
10 public static void main(String[] args) {
11 //基本的使用
12 ResourceBundle resourceBundle=ResourceBundle.getBundle("project");
13 System.out.println(resourceBundle.getString("projectName"));
14 //国际化的使用
15 ResourceBundle resourceBundle2=ResourceBundle.getBundle("hello_zn");
16 System.out.println(resourceBundle2.getString("hello"));
17 }
18
19 }
3.效果
三:介绍
1.作用
java的ResourceBundle类是用来读取properties的资源文件的,很多国际化操作都使用该类。
2.静态读取与动态读取
我们可以在每个对象中用ResourceBundle来读配置文件设置自己的值,也可以用一个固定的对象去读取然后保存下来以便以后使用。
在每个class中都去读配置文件会导致代码散乱,所以,只用一个class来进行读取是比较合理的做法。
另外,由于I/O的速度比较慢,如果负责读取配置文件的class是在每次用到这些配置项的时候去读文件,就容易成为性能上的瓶颈。
为避免这样的情况,可以在初始化的时候就把配置项一次全部读入,并保存在静态成员变量中。
不过:
不排除会有对配置项进行动态读取的需求(因为某些应用是不能停掉的,比如应用服务器。在这些应用运行期间更新了配置文件,就需要在不不关闭应用的情况下重新读入配置项)。
以下的例子只考虑了静态读取的情况,如果是动态读取,则可以把读取配置文件的代码放到某个方法中,通过对某个事件的响应来调用该方法更新配置项。