Java PropertyResourceBundle 类



简介

Java PropertyResourceBundle 类是 ResourceBundle 的一个具体子类,它使用属性文件中的静态字符串集来管理特定区域设置的资源。以下是关于 PropertyResourceBundle 的重要要点:

  • 该类可以通过 InputStream 或 Reader 来构造,它们分别表示属性文件。

类声明

以下是 java.util.PropertyResourceBundle 类的声明:

public class PropertyResourceBundle
   extends ResourceBundle

字段

继承自 java.util.ResourceBundle 类的字段。

类构造函数

序号 构造函数 & 描述
1

PropertyResourceBundle(InputStream stream)

此构造函数从 InputStream 创建一个属性资源包。

2

PropertyResourceBundle(Reader reader)

此构造函数从 Reader 创建一个属性资源包。

类方法

序号 方法 & 描述
1 Enumeration<String> getKeys()

此方法返回此 ResourceBundle 及其父捆绑包中包含的键的枚举。

2 Object handleGetObject(String key)

此方法从此资源包获取给定键的对象。

3 protected Set<String> handleKeySet()

此方法返回仅包含在此 ResourceBundle 中的键的集合。

继承的方法

此类继承自以下类的方法:

  • java.util.ResourceBundle
  • java.util.Object

从 PropertyResourceBundle 实例获取键的示例

以下示例演示了 Java PropertyResourceBundle getKeys() 方法的使用。我们创建了给定内容的 InputStream,然后使用该流创建了一个 PropertyResourceBundle 对象。然后使用 getKeys() 方法检索键的枚举并打印条目。

package com.tutorialspoint;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringBufferInputStream;
import java.nio.charset.Charset;
import java.util.Enumeration;
import java.util.PropertyResourceBundle;

public class PropertyResourceBundleDemo {
   public static void main(String[] args) {

      // Prepare content for simulating property files
      String fileContent = 
         "# Integer value 1\n" +
         "s1 = 1\n" +
         "# String value PropertyResourceBundleDemo\n" +
         "s2 = PropertyResourceBundleDemo\n" +
         "# Date value Fri Jan 31 00:00:00 IST 3913\n" +
         "s3 = Fri Jan 31 00:00:00 IST 3913";
      InputStream propStream = new ByteArrayInputStream(fileContent.getBytes
         (Charset.forName("UTF-8")));

      try {
      
         // Create property resource bundle
         PropertyResourceBundle bundle = 
         new PropertyResourceBundle(propStream);

         // Get resource keys
         Enumeration<String> keys = bundle.getKeys();

         while(keys.hasMoreElements()) {
            System.out.println("Bundle key: "+keys.nextElement());
         }
      } catch (IOException e) {
         e.printStackTrace();
      }  
   }
}

输出

让我们编译并运行以上程序,这将产生以下结果:

Bundle key: s2
Bundle key: s1
Bundle key: s3
广告