`

ResourceBundle与Properties两个类的区别

    博客分类:
  • java
 
阅读更多

这两个类都是读取properties格式的文件的,而Properties同时还能用来写文件。 
  
  Properties的处理方式是将其作为一个映射表,而且这个类表示了一个持久的属性集,他是继承HashTable这个类。ResourceBundle本质上也是一个映射,但是它提供了国际化的功能。 
  
  假设电脑设置的地区是中国大陆,语言是中文 
  
  那么你向ResourceBundle(资源约束名称为base)获取abc变量的值的时候,ResourceBundle会先后搜索 
  base_zh_CN_abc.properties 
  base_zh_CN.properties 
  base_zh.properties 
  base.properties 
  文件,直到找到abc为止 
  
  相应的,在英国就会去找base_en_GB_abc.properties等。 
  
  因此,你只需要提供不同语言的资源文件,而无需改变代码,就达到了国际化的目的。 
  
  另外,在.properties里面,不能直接使用中文之类文字,而是要通过native2ascii转乘\uxxxx这种形式

   附:
   编码问题:无论系统的默认编码是什么,ResourceBundle在读取properties文件时统一使用iso8859-1编码。因此,如果在默认编码为 GBK的系统中编写了包含中文的properties文件,经由ResourceBundle读入时,必须转换为GBK格式的编码,否则不能正确识别。

分享到:
评论
1 楼 忍者战神 2011-09-05  

相关推荐

    ResourceBundle与Properties读取maven中resources目录下的资源文件

    ### ResourceBundle与Properties读取Maven中Resources目录下的资源文件 #### 一、概述 在Java开发过程中,我们经常需要读取资源文件中的配置信息。在Maven项目中,`src/main/resources`目录下通常存放了各种配置...

    Properties类小结

    另外,Properties类还可以与其他工具类结合使用,例如ResourceBundle,以实现国际化(i18n)功能。通过不同语言的.properties文件,我们可以为不同地区的用户提供本地化的消息。 总结起来,Properties类是Java中...

    java实现properties文件读取

    在Java编程中,Properties文件是用于存储配置信息的文本文件,通常以键值对的形式...如果你需要查看具体实现,可以查阅这两个文件。通过分析`ConfigInfo.java`,你可以看到如何将上述理论知识应用于实际的Java代码中。

    MyEclipse中properties文件支持中文的解决办法

    总的来说,解决MyEclipse中.properties文件支持中文的问题,主要通过安装和使用PropEdit和ResourceBundle Editor这两个插件,它们能提供对中文字符的完美支持,使得开发者在处理国际化资源时更加得心应手。...

    API读取Properties文件的六种方法

    与前两种方法相比,这种方式更加通用,因为它不依赖于特定的类或类加载器。 ```java import java.io.InputStream; import java.util.Properties; public class SystemResourceExample { public static void main...

    java常用API[整理].pdf

    ResourceBundle 和 Properties 是 Java 中两个重要的类,ResourceBundle 用于表示资源束,Properties 用于表示属性文件。它们可以用来存储和读取配置信息。 9. Exceptions Exception 是 Java 中一个非常重要的概念...

    Java 操作Properties配置文件详解

    load 方法有两个重载:load(InputStream inStream) 和 load(Reader reader),可根据不同的方式来加载属性文件。 例如: ```java InputStream inStream = TestProperties.class.getClassLoader()....

    Java加载properties文件实现方式详解

    使用java.util.ResourceBundle类的getBundle(String baseName)方法加载properties文件 Java中的ResourceBundle类提供了getBundle(String baseName)方法,该方法可以加载properties文件。下面是使用ResourceBundle类...

    ResourceBundle类在jsp中的国际化实现方法

    在本例中,有两个资源文件:`msg_en_US.properties` 和 `msg_zh_CN.properties`。这些文件分别存储英文和中文的页面文本。`properties` 文件的格式如下: ```properties # msg_en_US.properties inf=Welcome to the...

    java操作属性文件[参考].pdf

    在 Java 中,有两种主要的方法来操作属性文件:使用 `Properties` 类和使用 `ResourceBundle` 类。 1. **使用 `Properties` 类**: `Properties` 类是 Java 核心库 `java.util` 包中的一个类,主要用于处理属性...

    java操作属性文件.pdf

    Java 提供了两种方式来操作属性文件,一种是使用 Properties 类,另一种是使用 ResourceBundle 类。 Properties 类是 Java 中的一个内置类,用于读取和写入属性文件。Properties 类提供了多种方法来读取和写入属性...

    Java读取.properties配置文件的几种方式

    - 从`InputStream`中读取,这与前面的`Properties`类类似,只是使用了`PropertyResourceBundle`: ```java ResourceBundle resource = new PropertyResourceBundle(inStream); ``` 在使用这些方法时,关键的...

    java实现国际化I18N简单实例,没用任何框架.zip

    1. 创建 `.properties` 文件:在项目中创建两个文件,如 `messages.properties`(默认语言,通常是英文)和 `messages_de.properties`(德语版本)。 2. 添加内容:在每个文件中,定义相同的键,但对应不同的值。...

    javaee国际化

    Struts2的国际化原理主要依赖于`java.util.Locale`和`java.util.ResourceBundle`这两个类。`Locale`对象代表一个特定的地区和语言环境,而`ResourceBundle`则用来加载与特定`Locale`对应的资源文件。资源文件通常是...

    JAVA 资源定位

    这两个方法都接受一个相对路径作为参数,路径的根是加载类的包。例如,如果你有一个名为`com.example.config`的包,且在该包下有一个`test.properties`文件,你可以使用以下代码来加载它: ```java InputStream is ...

    国际化 必备工具 java编写

    这两个类是进行字符流和字节流之间转换的关键。通过指定字符集,它们可以确保在读写过程中正确处理编码。 三、实际应用 在开发过程中,我们可能会遇到以下场景: - **多语言界面**:使用`ResourceBundle`和`...

    struts2配置和Java国际化和JS国际化

    这两个文件中分别存放对应语言的键值对,例如: ``` greeting=Hello, World! ``` 在Java代码中,我们可以使用`ResourceBundle`获取相应的本地化字符串: ```java ResourceBundle bundle = ResourceBundle....

    JAVA基础

    ResourceBundle类通过getBundle方法加载资源文件,它接受两个参数:资源文件的基本名称和Locale对象。例如,若基本名称为"MenuBarResources",Locale为zh_CN,那么对应的资源文件应命名为"MenuBarResources-zh_...

    国际化示例

    在Struts2中,我们主要依赖两个核心组件来实现国际化:struts2.xml配置文件和.properties资源文件。下面我们将详细探讨这两个组件的使用。 1. **struts2.xml配置文件**:这是Struts2的核心配置文件,用于定义Action...

Global site tag (gtag.js) - Google Analytics