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 CodeDescription
deGerman
enEnglish
frFrench
jaJapanese
jwJavanese
koKorean
zhChinese

国家代码如下:

Country CodeDescription
CNChina
DEGermany
FRFrance
INIndia
USUnited 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

汽车电子 静态电流 **静态电流(Static Current 或 Quiescent Current, IQ)** 是指汽车在 **熄火 / 关机 / 睡眠模式** 下,电子控制单元(ECU)或电子元件仍然保持基本功能(RTC、存储保持、Wake-up 监测、CAN/LIN 监听等)所消耗的微弱电流。 阅读详情

相关推荐

深入解析DDR5 SDRAM中的CA训练模式(CATM):原理与实现

本文深入解析DDR5 SDRAM中的CA训练模式(CATM),详细探讨其工作原理与实现方法。通过分析JESD79-5标准,揭示CATM在时序校准、信号质量优化和系统稳定性方面的核心价值,并提供硬件设计考量和系统级调试技巧,帮助工程师解决高速内存系统中的信号完整性问题。

weixin_29235923的博客 386

SpringBoot--thymeleaf使用和页面国际化

1、准备工作 新建springboot项目,命名为springboot-employee-management-system 选择需要的配置模块 创建controller层,写一个HelloController测试一下 @RestController public class HelloController { @GetMapping("/hello") public String hello() { return "hello world"; } } 启

Jiao的博客 700

ORCAD 层次化原理图使用TCL获取位号的方法

orcad tcl 获取occurrence位号的方法。

m0_46675718的博客 1134

ResourceBundle读取配置文件

ResourceBundle bundle = ResourceBundle.getBundle("config/**"); Integer.valueOf(bundle.getString("**").trim()); Boolean.valueOf(bundle.getString("**").trim());

hk_优快云的博客 880

010Editor实战:5分钟破解Zip伪加密文件(附BUUCTF真题解析)

本文详细介绍了如何使用010Editor快速破解Zip伪加密文件,包括BUUCTF真题的完整解析。通过修改关键字节,轻松解除伪加密状态,适用于CTF竞赛和实际工作场景,提升文件处理效率。

weixin_29325007的博客 327

从Datasheet到可用的Verilog模块:手把手教你为N25Q128 SPI Flash写状态机驱动

本文详细介绍了如何从Datasheet到实现可用的Verilog模块,手把手教你为N25Q128 SPI Flash编写状态机驱动。文章涵盖SPI Flash的核心工作机制、数据手册解析方法、Verilog状态机设计实践以及调试与性能优化技巧,特别适合FPGA开发者和硬件设计工程师参考。

weixin_30596023的博客 177

Java ResourceBundle 加载外部路径资源文件方式

ResourceBundle读取的文件是在classpath路径下,也就是src或者src目录下,而我们在项目中需要打包,打包后的properties文件在jar中,修改很不方便,我们需要把properties文件放在jar外随时可以修改。 1、一般情况下ResourceBundle读取文件方式默认的读取路径是classpath,配置文件名为resourceBundle.propertie...

一个标题 2187

Unity零基础到进阶 | Unity中的内存泄漏全解析,原因、排查及避免

Unity 内存泄漏并非传统C++语境中的野指针或未释放堆内存,而是基于其「托管内存(C#)+ 原生内存(引擎/非托管)」双架构的特殊问题——即已废弃、不再被业务逻辑使用的内存块,无法被引擎或系统自动回收,持续占用内存空间,最终引发内存暴涨、GC卡顿、OOM(内存溢出)崩溃,其中移动端、主机端受影响最显著。 Unity 内存主要分为三类,其中泄漏仅发生在前两类,栈内存因系统自动分配/释放,无泄漏风险:

努力前行,总会成为自己心中的那道光 1万+

JAVA ResourceBundle 加载外部路径资源文件方式

ResourceBundle读取的文件是在classpath路径下,也就是src或者src目录下,而我们在项目中需要打包,打包后的properties文件在jar中,修改很不方便,我们需要把properties文件放在jar外随时可以修改。 1、一般情况下ResourceBundel读取文件方式默认的读取路径是classpath,配置文件名为resourceBundle.properties。在s

玉吢雕龍的博客 1万+

建立时间与保持时间

建立时间与保持时间的计算 文章目录1、建立时间与保持时间概述及模型2、寄存器之间数据传输时建立时间与保持时间3、寄存器之间数据传输时建立时间余量与保持时间余量计算4、 FPGA允许的最大时钟频率或最小时钟周期5、计算FPGA时钟所允许的最大频率或最小时钟周期6、违反建立和保持时间会发生什么? 1、建立时间与保持时间概述及模型 建立时间(Tsu): 在时钟采样之前,输入必须稳定一段时间,该时间量称为建立时间。 理想最优建立时间: 保持时间(Th): 在时钟沿之后输入到触发器稳定所需的最短时间。 理想最优

Crazzy_M的博客 3万+

Python 爬虫教程:金融数据定向抓取(银行 + 投资网站数据结构化提取)

在当今数字化时代,金融数据的获取和分析对于投资者、分析师以及金融机构来说至关重要。Python 爬虫技术可以帮助我们高效地从各种网站上抓取金融数据,从而为投资决策、风险评估和市场分析提供支持。本文将详细介绍如何使用 Python 爬虫技术来定向抓取银行和投资网站的数据,并将其结构化提取,以便进一步分析和使用。

u014481728的博客 884

java resourcebundle_Java中使用ResourceBundle访问资源文件(properties文件) | 学步园

在程序中经常需要使用常量,假如直接写在程序里,改变这些字符串时必须重新编译,例如编写数据库应用的时候数据库驱动程序、URL、用户名和口令等信息,可以使用资源文件(Properties文件),Java中提供了ResourceBundle类来方便对属性文件的访问。本文先容如何编写properties文件,如何访问,如何实现国际化。1、properties文件的编写文件的后缀名为.properties。...

weixin_34094559的博客 370

31、Labview如何搭建程序框架?--状态机到数据采集等常用框架

本文废话不多,直接列举几种框架搭建方式,为了尽量向大家提供干货,本文直接从简介和手把手教搭建框架两方面来讲解,本文提到五种经典框架模式,学会这五种就很够了,分别是:状态机框架(State Machine)、生产者-消费者框架(Producer-Consumer)、主-从框架(Master-Slave)、事件驱动框架(Event-Driven)、分层架构(Layered Architecturep)。这个框架是基于状态机结构的。顾名思义“状态机”就是个“切换程序状态的机器”。本质是一个。

关注我,更多技术问题欢迎私聊~ 3105

java使用ResourceBundle访问资源文件(.properties文件)

为了程序的国际化,在界面的字符串我们不能写死了,不然修改成本太大啦。这时我们可以将字符串写入到一个资源文件(.properties文件)里,然后在代码中直接引用该文件的东西。

Mr mao的博客 1117

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【Java笔记(8)】解决ResourceBundle访问资源文件.properties,访问不到问题

解决 Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name jdbcconf.properties, locale zh_CN 目录不能有后缀名采用ResourceBundle不能文件不能有后缀名。 private String confPath = "jdbcconf"; ResourceBundle resourceBundle =Resour.

weixin_43493559的博客 459

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ResourceBundle的使用

使用ResourceBundle访问本地资源         在设计时,我们往往需要访问一些适合本地修改的配置信息,如果作为静态变量,那么每次修改都需要重新编译一个class,.config保存此类信息并不适合,这时我们需要ResourceBundle。    通过ResourceBundle,我们需要访问位于/WEB-INF/classes目录下的一个后缀名为properties的文本类型文

xiangliangzero的博客 723

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java中死数据写入配置文件,java 读取和写入配置文件中的数据

1、读取配置文件中的数据,注意,此处读取的是部署的项目中的配置文件,而非项目本身的配置文件public String getProData(String key){String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();String rootPath = path.sub...

weixin_28949779的博客 620

java-资源加载总结

相对路径与绝对路径 绝对路径 就是真实的路径,是计算机中完整路径,必须准确,否则不能找到,起点是系统的根目录,也就是各个盘符。比如/(Linux系统中)或者C:(Windows系统中)。 相对路径 相对路径就是相对于某个基准目录的路径。 …/ 表示当前文件所在的目录的上一级目录 ./ 表示当前文件所在的目录(可以省略) / 表示当前站点的根目录(域名映射的硬盘目录)。比如:在Servlet中,"/“代表Web应用的根目录,在Java项目中”/"也代表项目根目录。 ...

jiqiren1994的博客 318

软件三班-14

【代码】软件三班-14。

2401_83479191的博客 176

固定文本的国际化

固定文本的国际化 今天老师给我们讲解了软件的国际化,那么什么是软件的国际化呢?下面我们先来说一下国际话开发概述来了解一下软件的国际化。 软件的国际化:软件开发时,要使他能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访问者阅读习惯的页面或数据。(国际化又称i18n:internationalization) 软件实现国际化,需具备那些特征呢? 1.

雪狼小记 735

Java 资源文件读取方式汇总:Properties、ResourceBundle、ClassLoader、Resource、Hutool Setting、...

2、比如全世界都在用 weChat(微信),那么就需要有一个功能,对日本人显示的是日本文,对韩国人显示的是韩文,英国人显示英文,中国人显示中文,而 ResourceBundle 资源绑定就是解决这个问题,通过绑定不同的资源文件(即语言)来达到不同语言的显示。3、Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法,但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项,推荐使用 setProperty 方法。

蚩尤后裔-汪茂雄 4850

Java语言对properties资源文件的处理——ResourceBundle 类的使用

开始之前,我们先解释一下什么是properties类型的资源文件。在Java语言中,使用一种以.properties为扩展名的文本文件作为资源文件,该类型的文件的内容格式为类似: #注释语句some_key=some_value 形式。以#开头的行作为注释行,ResourceBundle类处理时会加以忽略;其余的行可以以 key名=value值 的形式加以记述。 J

freesky_lwj的专栏 1065

使用ResourceBundle加载properties文件

使用ResourceBundle加载properties文件@(JAVA)[java]1、ResourceBundle介绍说的简单点,这个类的作用就是读取资源属性文件(properties),然后根据.properties文件的名称信息(本地化信息),匹配当前系统的国别语言信息(也可以程序指定),然后获取相应的properties文件的内容。使用这个类,要注意的一点是,这个properties文件的

jediael_lu的专栏 2306
上一篇: Java反射机制
下一篇: Java变长参数
Java_Web_Book
博客等级 码龄18年 8粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值