027 ResourceBundle.getBundle方法

  在程序中遇到这个,感觉会比较重要,就学习一番。

一:静态读取配置文件的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是在每次用到这些配置项的时候去读文件,就容易成为性能上的瓶颈。

  为避免这样的情况,可以在初始化的时候就把配置项一次全部读入,并保存在静态成员变量中。

  不过:

  不排除会有对配置项进行动态读取的需求(因为某些应用是不能停掉的,比如应用服务器。在这些应用运行期间更新了配置文件,就需要在不不关闭应用的情况下重新读入配置项)。

  以下的例子只考虑了静态读取的情况,如果是动态读取,则可以把读取配置文件的代码放到某个方法中,通过对某个事件的响应来调用该方法更新配置项。

原文地址:https://www.cnblogs.com/juncaoit/p/9305080.html