TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
在程序中经常需要使用常量,如果直接写在程序里,改变这些字符串时必须重新编译,例如编写数据库应用的时候数据库驱动程序、URL、用户名和口令等信息,可以使用资源文件(Properties文件),java中提供了 ResourceBundle类来方便对属性文件的访问。本文介绍如何编写properties文件,如何访问,如何实现国际化。 1、properties文件的编写
文件的后缀名为.properties。
文件中每一行的格式为:key=value 例如:
database.driver=com.mysql.jdbc.Drvier
database.url=jdbc:mysql://localhost:3306:test
database.user=root
database.pass=root
如果要是使用注释可以使用#,例如: #如果采用其他数据库,需要修改这些信息 2、使用ResourceBundl解析资源文件
分两步:加载资源文件,然后获取某个特定信息。 2.1 加载资源文件
使用getBundle方法
ResourceBundle resource = ResourceBundle.getBundle("messages"); 参数为资源文件的名字,注意不用谢后缀名。 2.2获取资源文件中的信息
使用getString方法,例如要获取上面写的驱动程序,可以使用下面的代码:
String driverName = resource.getString("database.driver"); 3、实例
3.1 资源文件
文件名:message_zh_CN.properties 文件内容: database.driver=com.mysql.jdbc.Drvier
database.url=jdbc:mysql://localhost:3306:test
database.user=root
database.pass=root 3.2 读取资源文件的Java文件- import java.util.ResourceBundle;
- public class ResourceBundleTest {
- public static void main(String[] args) {
- ResourceBundle resource = ResourceBundle.getBundle("message");
- String driverName = resource.getString("database.driver");
- String url = resource.getString("database.url");
- String user = resource.getString("database.user");
- String pass = resource.getString("database.pass");
-
- System.out.println("驱动程序:"+driverName);
- System.out.println("URL:"+driverName);
- System.out.println(" 用户名:"+driverName);
- System.out.println("口令:"+driverName);
- }
- }
复制代码 3.3 执行结果 驱动程序:com.mysql.jdbc.Drvier
URL:com.mysql.jdbc.Drvier
用户名:com.mysql.jdbc.Drvier
口令:com.mysql.jdbc.Drvier 4、使用Locale设置国家和地区支持国际化
有些应用需要同时支持多国语言,这时候如果为每种语言都开发一套应用将很费力,并且很难维护,好的方法是把变化的不同语言表示的信息单独存储在资源文件中,而把不变的逻辑内容保留在应用中,需要的时候从资源文件中加载可变的内容。国际化就是来解决这个问题的。把不同语言的信息写在不同的文件中。根据需要调用相应的文件。 4.1 编写支持多语言的资源文件。 默认文件:message.properties
login.user=Username
login.pass=Password
login.submit=Submit 简体中文:message_zh_CN.properties login.user=用户名
login.pass=口令
login.submit=提交 注意:中文资源文件需要使用native2ascii处理,转换为Unicode编码。 4.2 调用不同的资源文件 使用ResourceBundle的getBundle方法,第一个参数值资源文件的名字,第二个参数是国家和地区。例如: ResourceBundle.getBundle("message", Locale.SIMPLIFIED_CHINESE); 注意:Locale中定义了很多表示不同语言的常量。也可以直接指出地区和语言。 Locale bLocale = new Locale("en", "US");
Locale cLocale = new Locale("en", "GB"); 第一个参数是语言代码,第二个参数是国家代码。
语言如下:
Language Code
Description
de
German
en
English
fr
French
ja
Japanese
jw
Javanese
ko
Korean
zh
Chinese
国家代码如下:
Country Code
Description
CN
China
DE
Germany
FR
France
IN
India
US
United States
源码下载:http://file.javaxxz.com/2014/11/5/235847625.zip |
|