使用ResourceBundle实现资源的统一调配 | 带你学《Java语言高级特性》之二十八

简介: 在程序国际化的进程当中,不可避免的会出现关于资源文件的读取问题。本节将为你介绍ResourceBundle类的相关内容,助你实现资源的统一调配工作。

上一篇:升级项目,使其“走向国际” | 带你学《Java语言高级特性》之二十七

在程序国际化的进程当中,不可避免的会出现关于资源文件的读取问题。本节将为你介绍ResourceBundle类的相关内容,助你实现资源的统一调配工作。

【本节目标】
通过阅读本节内容,你将学会建立资源文件,并使用ResourceBundle类实现文件的获取,通过key值取得文件对应内容,进而实现资源的统一调配。

ResourceBundle读取资源文件

创建一个资源文件: Messages.properties,并添加内容。

#资源文件名称:Messages.properties
info=欢迎小强同学光临指教

现在已经准备好了资源文件,那么随后就需要进行资源文件的读取操作了,而读取资源文件主要依靠的是java.util.ResourceBundle类完成,此类定义如下:

public abstract class ResourceBundle extends Object

ResourceBundle是一个抽象类,如果说要想进行此类对象的实例化可以直接利用该类中提供的一个静态方法完成:

  • 获取ResourceBundle类对象:
  1. static final ResourceBundle getBundle​(String baseName);

    • baseName:描述的是资源文件的名称,但是没有后缀(cn.mldn.message.Message);
  • 根据key读取资源内容: public final String getString​(String key);

范例:使用ResourceBundle类读取内容

import java.util.ResourceBundle;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        ResourceBundle resource = ResourceBundle.getBundle("cn.mldn.message.Message");
        String val = resource.getString("info");
        System.out.println(val);    //欢迎小强同学光临指教
    }
}

如果资源没有放在包里面,则直接编写资源名称即可。

image.png
资源未放在包里

ResourceBundle resource = ResourceBundle.getBundle("Message");

在进行资源读取的时候数据的key一定要存在,如果不存在则会出现如下异常信息:java.util.MissingResourceException异常。

想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:整装待发-实操程序国际化 | 带你学《Java语言高级特性》之二十九
更多Java面向对象编程文章查看此处

相关文章
|
6月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
252 4
|
6月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
421 18
|
7月前
|
Java API 开发工具
【Azure Developer】Java代码实现获取Azure 资源的指标数据却报错 "invalid time interval input"
在使用 Java 调用虚拟机 API 获取指标数据时,因本地时区设置非 UTC,导致时间格式解析错误。解决方法是在代码中手动指定时区为 UTC,使用 `ZoneOffset.ofHours(0)` 并结合 `withOffsetSameInstant` 方法进行时区转换,从而避免因时区差异引发的时间格式问题。
354 4
|
7月前
|
存储 Java Apache
Java语言操作INI配置文件策略
以上步骤展示了基本策略,在实际项目中可能需要根据具体需求进行调整优化。例如,在多线程环境中操作同一份配置时需要考虑线程安全问题;大型项目可能还需考虑性能问题等等。
297 15
|
8月前
|
算法 Java
Java语言实现链表反转的方法
这种反转方法不需要使用额外的存储空间,因此空间复杂度为,它只需要遍历一次链表,所以时间复杂度为,其中为链表的长度。这使得这种反转链表的方法既高效又实用。
610 0
|
8月前
|
JSON Java API
【干货满满】分享拼多多API接口到手价,用Java语言实现
本方案基于 Java 实现调用拼多多开放平台商品详情 API,通过联盟接口获取商品到手价(含拼团折扣与优惠券),包含签名生成、HTTP 请求及响应解析逻辑,适用于电商比价、导购系统集成。
|
8月前
|
JSON Java API
【干货满满】分享京东API接口到手价,用Java语言实现
本示例使用 Java 调用京东开放平台商品价格及优惠信息 API,通过商品详情和促销接口获取到手价(含优惠券、满减等),包含签名生成、HTTP 请求及响应解析逻辑,适用于比价工具、电商系统集成等场景。
|
8月前
|
JSON Java API
【干货满满】分享淘宝API接口到手价,用Java语言实现
本文介绍了如何使用 Java 调用淘宝开放平台 API 获取商品到手价,涵盖依赖配置、签名生成、HTTP 请求与响应解析等核心实现步骤。
|
9月前
|
机器学习/深度学习 Java 大数据
Java 大视界 -- Java 大数据在智能政务公共资源交易数据分析与监管中的应用(202)
本篇文章深入探讨了 Java 大数据在智能政务公共资源交易监管中的创新应用。通过构建高效的数据采集、智能分析与可视化决策系统,Java 大数据技术成功破解了传统监管中的数据孤岛、效率低下和监管滞后等难题,为公共资源交易打造了“智慧卫士”,助力政务监管迈向智能化、精准化新时代。
|
9月前
|
JavaScript Java Go
Go、Node.js、Python、PHP、Java五种语言的直播推流RTMP协议技术实施方案和思路-优雅草卓伊凡
Go、Node.js、Python、PHP、Java五种语言的直播推流RTMP协议技术实施方案和思路-优雅草卓伊凡
691 0