Java中使用ResourceBundle访问资源文件(properties文件)



在程序中经常需要使用常量,假如直接写在程序里,改变这些字符串时必须重新编译,例如编写数据库应用的时候数据库驱动程序、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方法,参数是资源文件的
ResourceBundleresource=ResourceBundle.getBundle("messages");
参数为资源文件的名字,留意不用写后缀名。
2.2获取资源文件中的信息
使用getString方法,例如要获取上面写的驱动程序,可以使用下面的代码:

String driverName = resource.getString("database.driver");


3、实例
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、使用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("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
结束!
李绪成 优快云 Blog:http://blog.youkuaiyun.com/javaeeteacher
优快云学生大本营:http://student.youkuaiyun.com/space.php?uid=124362
假如喜欢我的文章,就加我为好友:http://student.youkuaiyun.com/invite.php?u=124362&c=7be8ba2b6f3b6cc5
【完美复现】面向配电网韧性提升的移动储能预布局与动态调度策略【IEEE33节点】(Matlab代码实现)内容概要:本文介绍了基于IEEE33节点的配电网韧性提升方法,重点研究了移动储能系统的预布局与动态调度策略。通过Matlab代码实现,提出了一种结合预配置和动态调度的两阶段优化模型,旨在应对电网故障或极端事件时快速恢复供电能力。文中采用了多种智能优化算法(如PSO、MPSO、TACPSO、SOA、GA等)进行对比分析,验证所提策略的有效性和优越性。研究不仅关注移动储能单元的初始部署位置,还深入探讨其在故障发生后的动态路径规划与电力支援过程,从而全面提升配电网的韧性水平。; 适合人群:具备电力系统基础知识和Matlab编程能力的研究生、科研人员及从事智能电网、能源系统优化等相关领域的工程技术人员。; 使用场景及目标:①用于科研复现,特别是IEEE顶刊或SCI一区论文中关于配电网韧性、应急电源调度的研究;②支撑电力系统在灾害或故障条件下的恢复力优化设计,提升实际电网应对突发事件的能力;③为移动储能系统在智能配电网中的应用提供理论依据和技术支持。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析,重点关注目标函数建模、约束条件设置以及智能算法的实现细节。同时推荐参考文中提及的MPS预配置与动态调度上下两部分,系统掌握完整的技术路线,并可通过替换不同算法或测试系统进一步拓展研究。
先看效果: https://pan.quark.cn/s/3756295eddc9 在C#软件开发过程中,DateTimePicker组件被视为一种常见且关键的构成部分,它为用户提供了图形化的途径来选取日期与时间。 此类控件多应用于需要用户输入日期或时间数据的场景,例如日程管理、订单管理或时间记录等情境。 针对这一主题,我们将细致研究DateTimePicker的操作方法、具备的功能以及相关的C#编程理念。 DateTimePicker控件是由.NET Framework所支持的一种界面组件,适用于在Windows Forms应用程序中部署。 在构建阶段,程序员能够通过调整属性来设定其视觉形态及运作模式,诸如设定日期的显示格式、是否展现时间选项、预设的初始值等。 在执行阶段,用户能够通过点击日历图标的下拉列表来选定日期,或是在文本区域直接键入日期信息,随后按下Tab键或回车键以确认所选定的内容。 在C#语言中,DateTime结构是处理日期与时间数据的核心,而DateTimePicker控件的值则表现为DateTime类型的实例。 用户能够借助`Value`属性来读取或设定用户所选择的日期与时间。 例如,以下代码片段展示了如何为DateTimePicker设定初始的日期值:```csharpDateTimePicker dateTimePicker = new DateTimePicker();dateTimePicker.Value = DateTime.Now;```再者,DateTimePicker控件还内置了事件响应机制,比如`ValueChanged`事件,当用户修改日期或时间时会自动激活。 开发者可以注册该事件以执行特定的功能,例如进行输入验证或更新关联的数据:``...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值