Java中使用ResourceBundle访问资源文件(properties文件)
来源:互联网 发布:java在线编程工具 编辑:程序博客网 时间:2024/05/15 09:23
在程序中经常需要使用常量,假如直接写在程序里,改变这些字符串时必须重新编译,例如编写数据库应用的时候数据库驱动程序、URL、用户名和口令等信息,可以使用资源文件(Properties文件),Java中提供了ResourceBundle类来方便对属性文件的访问。本文先容如何编写properties文件,如何访问,如何实现国际化。
文件的后缀名为.properties。
文件中每一行的格式为:key=value
例如:
database.driver=com.mysql.jdbc.Drvier
database.url=jdbc:mysql://localhost:3306:test
database.user=root
database.pass=root
假如要是使用注释可以使用#,例如:
#假如采用其他数据库,需要修改这些信息
分两步:加载资源文件,然后获取某个特定信息。
2.1 加载资源文件
使用getBundle方法,参数是资源文件的
ResourceBundleresource=ResourceBundle.getBundle("messages");
参数为资源文件的名字,留意不用写后缀名。
2.2获取资源文件中的信息
使用getString方法,例如要获取上面写的驱动程序,可以使用下面的代码:
String driverName = resource.getString("database.driver");
3.1 资源文件
文件名:database.properties
文件内容:
database.driver=com.mysql.jdbc.Drvier
database.url=jdbc:mysql://localhost:3306:test
database.user=root
database.pass=root
3.2 读取资源文件的Java文件
package ch6;
import java.util.ResourceBundle;
public class ResourceBundleTest {
public static void main(String[] args) {
ResourceBundle resource = ResourceBundle.getBundle("ch6.database");
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.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("ch6.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
结束!
李绪成 CSDN Blog:http://blog.csdn.net/javaeeteacher
CSDN学生大本营:http://student.csdn.net/space.php?uid=124362
假如喜欢我的文章,就加我为好友:http://student.csdn.net/invite.php?u=124362&c=7be8ba2b6f3b6cc5
- Java中使用ResourceBundle访问资源文件(properties文件)
- Java中使用ResourceBundle访问资源文件(properties文件)
- Java中使用ResourceBundle访问资源文件(properties文件)
- java使用ResourceBundle访问资源文件(.properties文件)
- 读取资源属性文件(properties)java.util.ResourceBundle使用详解
- 使用ResourceBundle国际化资源文件读取properties详解
- 使用ResourceBundle加载properties文件
- 使用ResourceBundle加载properties文件
- java访问资源文件Properties
- java访问资源文件 .properties
- Java语言对properties资源文件的处理——ResourceBundle 类的使用
- java.util.ResourceBundle使用详解及如何调用properties文件
- ResourceBundle读取properties文件
- ResourceBundle 读取 .properties文件
- Java的ResourceBundle读取properties文件
- java.util.ResourceBundle读取properties文件
- java.util.ResourceBundle使用详解(读取资源属性文件)
- Java语言对properties资源文件的处理 - ResourceBundle类的用
- [C++] next_permutation的函数 与 copy() 函数的用法
- OpenCV Hog+SVM 学习
- 读《Effectove MySQL之SQL语句最优化》的感想
- js eval
- [心灵] 我对这个世界充满了想象力和好奇心
- Java中使用ResourceBundle访问资源文件(properties文件)
- linux 安装ATI显卡驱动时问题
- [Andriod官方训练教程]管理Activity的生命活动之停止和重启一个Activity
- [C/C++] C语言文件读写示例程序 xcb
- Report: Are Saturated Fats Really The Enemy?
- 基于Axis2的webservice开发及跨平台跨语言调用
- [C] sprintf 函数的用法 -> 各种类型的数据构造成字符串
- hdu 2399 GPA
- 测试博客