介绍:

ResourceBundle类主要作用是读取属性文件,读取属性文件时可以直接指定属性文件的名称(指定名称时不需要文件的后缀),也可以根据Locale所指定的区域码来选取指定的资源文件;

ResourceBundle类的常用方法:

序号

    

    

1

public static final ResourceBundle

getBundle (String baseName)

取得ResourceBundle的实例,

并指定要操作的资源文件名称

2

public static final ResourceBundle

getBundle (String baseName,Locale locale)

取得ResourceBundle的实例,

并指定要操作的资源文件名称和区域码

3

public final String getString(String key)

根据key从资源文件

中取出对应的value

Java平台提供了两个ResourceBundle的子类,即ListResourceBundle和PropertyResourceBundle,这为创建资源提供了一种相当简单的方式。ListResourceBundle以键/值对的列表方式管理其资源。PropertyResourceBundle则使用一个属性文件来管理其资源。

如果需要编写自己的ResourceBundle子类,子类必须重写两个方法:handleGetObjectgetKeys()

getBundle工厂方法创建的资源包实例是默认缓存的,getBundle 客户端可以清除缓存、使用生存时间值管理已缓存资源包实例的生命周期,或者指定不缓存资源包实例。

简单的示例,MyResources继承了ResourceBundle类,代码如下:

public class MyResources extends ResourceBundle {

public Object handleGetObject(String key) {

if (key.equals("okKey")) return "Ok";

if (key.equals("cancelKey")) return "Cancel";

return null;

}

public Enumeration<String> getKeys() {

return Collections.enumeration(keySet());

}

// Overrides handleKeySet() so that the getKeys() implementation

// can rely on the keySet() value.

protected Set<String> handleKeySet() {

return new HashSet<String>(Arrays.asList("okKey", "cancelKey"));

}

}

Demo:

public static void main(String[] args) {

ResourceBundle bundle = ResourceBundle.getBundle("res", new Locale("zh", "CN"));

String cancel = bundle.getString("cancelKey");

System.out.println(cancel);

bundle = ResourceBundle.getBundle("res", Locale.US);

cancel = bundle.getString("cancelKey");

System.out.println(cancel);

bundle = ResourceBundle.getBundle("res", Locale.getDefault());

cancel = bundle.getString("cancelKey");

System.out.println(cancel);

bundle = ResourceBundle.getBundle("res", Locale.GERMAN);

cancel = bundle.getString("cancelKey");

System.out.println(cancel);

}

新建资源文件:res_zh_CN.properties

在文件中输入内容:cancelKey=\u53D6\u6D88(取消),运行程序即可正确输出结果;

此处的ResourceBundle是用于读取和写入属性资源的,因此具体的实现类是ResourceBundle的子类PropertyResourceBundle;

ResourceBundle介绍的更多相关文章

  1. Spring MVC学习笔记——JSR303介绍及最佳实践

    JSR 303 – Bean Validation 是一个数据验证的规范,2009 年 11 月确定最终方案.2009 年 12 月 Java EE 6 发布,Bean Validation 作为一个 ...

  2. JSR 303 - Bean Validation 介绍及最佳实践

    JSR 303 - Bean Validation 介绍及最佳实践 JSR 303 – Bean Validation 是一个数据验证的规范,2009 年 11 月确定最终方案.2009 年 12 月 ...

  3. jvm监控命令介绍

    1.jstack介绍 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在 ...

  4. 【转】JSF中的三大核心组件 UI标签的详细介绍和使用举例

    JSF提供了大量的UI标签来简化创建视图.这些UI标签类似于ASP.NET中的服务器组件.使用这些标签,可以通过其value,binding,action,actionListener等属性直接绑定到 ...

  5. 027 ResourceBundle.getBundle方法

    在程序中遇到这个,感觉会比较重要,就学习一番. 一:静态读取配置文件的Demo 1.新建工程 2.新建properties 3.新建Java的demo程序 注意不要写properties. packa ...

  6. SpringMVC介绍之视图解析器ViewResolver

    在前一篇博客中讲了SpringMVC的Controller控制器,在这篇博客中将接着介绍一下SpringMVC视图解析器.当我们对SpringMVC控制的资源发起请求时,这些请求都会被SpringMV ...

  7. 使用Properties类和ResourceBundle类读取properties文件

    一.介绍: 项目中经常把一些常用的用户名和密码都填写到一个对应的配置文件中,这样每次修改密码或者用户名的时候就可以直接修改这个配置文件了,不用动源码. 这里讲两种方式读取properties文件的方法 ...

  8. 简单工厂模式使用ResourceBundle读取.properties配置文件

    在做项目时,遇到需要创建DAO.Service等类的实例的时候,想到用工厂方法来运作,而简单工厂方法又有明显的缺点: ①由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中 ...

  9. JSR 303 - Bean Validation 介绍及最佳实践(转)

    JSR 303 – Bean Validation 是一个数据验证的规范,2009 年 11 月确定最终方案.2009 年 12 月 Java EE 6 发布,Bean Validation 作为一个 ...

随机推荐

  1. xhost + 的作用

    xhost 是用来控制X server访问权限的. 通常当你从hostA登陆到hostB上运行hostB上的应用程序时, 做为应用程序来说,hostA是client,但是作为图形来说, 是在hostA ...

  2. C#窗体控件简介ListBox(需整理)

    ListBox 控件 ListBox 控件又称列表框,它显示一个项目列表供用户选择.在列表框中,用户 一次可以选择一项,也可以选择多项. 1.常用属性: (1) Items属性: 用于存放列表框中的列 ...

  3. 规格化设计-----JSF(第三次博客作业)

    从20世纪60年代开始,就存在着许多不同的形式规格说明语言和软件开发方法.在形式规格说明领域一些最主要的发展过程列举如下: 1969-1972 C.A.R Hoare撰写了"计算机编程的公理 ...

  4. PHP:第三章——PHP中的递归函数

    <?php header("Content-Type:text/html;charset=utf-8"); function A(){ static $i = 0; ++$i ...

  5. 快速切题sgu127. Telephone directory

    127. Telephone directory time limit per test: 0.25 sec. memory limit per test: 4096 KB CIA has decid ...

  6. superset 安装配置

    一.配置python虚拟环境,请参考 superset依赖python3.6环境 https://www.cnblogs.com/xibuhaohao/p/9994854.html 二.安装配置sup ...

  7. python 抓取request信息,各种cookie,user-agent类的信息,只调试到http可以抓取,https貌似不行。

    import pcap # 安装的是pypcap,本博客有安装方法,不过也比较乱,试试吧.import dpktimport socketimport datetime def sniffer(str ...

  8. hdu 1013 过山车 匈牙利算法(代码+详细注释)

    过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  9. MyEclipse持续性开发教程:用JPA和Spring管理数据(四)

    MyEclipse红运年货节 在线购买低至69折!火爆开抢>> [MyEclipse最新版下载] 本教程介绍了MyEclipse中的一些基于JPA / Spring的功能.有关设置JPA项 ...

  10. centos7 vsftp的安装

    首先下载vsftp yum install -y vsftpd 安装好了之后 编辑默认的文件 vi /etc/vsftpd/vsftpd.conf 更改下面的: anonymous_enable=NO ...