Java ResourceBundle 工具类


ResourceBundle 工具类

  • 工具类 Properties 能够读取资源文件,而当资源文件是以 .properties 结尾的文件时,可以使用 JDK 提供的另外一个工具类 ResourceBundle 来对文件进行读取,使得操作更加简单;
  • Properties 是一个抽象类,我们可以使用它的子类 PropertyResourceBundle 来读取以 .properties 结尾的配置文件;
  • java.util.ResourceBundle,详见:Class ResourceBundle

1. ResourceBundle 类对象的创建

  • 在 ResourceBundle 类中提供了一个静态方法,用于获得它的子类对象(抽象类不能创建对象):
// 使用指定的基本名称,默认语言环境和调用者的类加载器获取资源包。
static ResourceBundle getBundle(String baseName);
  • .properties 配置文件需要放置在类的根路径 src 下面;
  • 给定参数只需要配置文件的名称,不要扩展名;
    1
import java.util.ResourceBundle;

public class Test {
    public static void main(String[] args) {
        //获得ResourceBundle类的对象
        ResourceBundle bundle = ResourceBundle.getBundle("data");//父类引用指向子类对象(多态)
        System.out.println(bundle);
    }
}
/*
输出
java.util.PropertyResourceBundle@4dd8dc3
 */

2. ResourceBundle 读取配置文件操作

  • ResourceBundle 类提供了一个 getString(String key) 方法用于读取配置文件中指定 key 的值:
//从此资源束或其父项之一获取给定密钥的字符串
String getString(String key) 

2

import java.util.ResourceBundle;
public class Test {
    public static void main(String[] args) {
        //获得ResourceBundle类的对象
        ResourceBundle bundle = ResourceBundle.getBundle("data");
        System.out.println(bundle);
        //读取指定key(username)的值
        String username = bundle.getString("username");
        System.out.println(username);
        //读取指定key(password)的值
        String password = bundle.getString("password");
        System.out.println(password);
    }
}
/*
输出
java.util.PropertyResourceBundle@214c265e
Regino
MyPassword
 */

3. ResourceBundle 读取多语言文本

31
32
33

import java.util.Locale;
import java.util.ResourceBundle;

public class Test {
    public static void main(String[] args) {
        //ResourceBunble:
        //1.可以快速读取src中的配置文件
        //2.可以做国际化的配置(扩展)
        //软件中:一堆的字符 : 确定、取消、充值 中英字眼,可以使用多个配置文件进行切换..
        //Locale.getDefault(): 拿到当前系统的语言

        //拿中文版
        System.out.println(Locale.getDefault());//这里输出zh_CN,系统会优先读取data_zh_CN,然后读取data_zh
        ResourceBundle rb = ResourceBundle.getBundle("data", Locale.getDefault());
        String name = rb.getString("name");  //getPropertie(String key)
        System.out.println(name);

        //拿英文版
        ResourceBundle rb2 = ResourceBundle.getBundle("data", Locale.ENGLISH);
        String name2 = rb2.getString("name");  //getPropertie(String key)
        System.out.println(name2);
    }
}
/*
输出
zh_CN
中文
eng
 */

推荐阅读:Java Properties 属性集合 >>>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值