Java Properties 类

Properties 继承于 Hashtable.表示一个持久的属性集.属性列表中每个键及其对应值都是一个字符串。

Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getProperties()方法的返回值。

Properties 定义如下实例变量.这个变量持有一个Properties对象相关的默认属性列表。

  1. Properties defaults;

Properties类定义了两个构造方法. 第一个构造方法没有默认值。

  1. Properties()

第二个构造方法使用propDefault 作为默认值。两种情况下,属性列表都为空:

  1. Properties(Properties propDefault)

除了从Hashtable中所定义的方法,Properties定义了以下方法:

序号方法描述
1String getProperty(String key)
用指定的键在此属性列表中搜索属性。
2String getProperty(String key, String defaultProperty)
用指定的键在属性列表中搜索属性。
3void list(PrintStream streamOut)
将属性列表输出到指定的输出流。
4void list(PrintWriter streamOut)
将属性列表输出到指定的输出流。
5void load(InputStream streamIn) throws IOException
从输入流中读取属性列表(键和元素对)。
6Enumeration propertyNames( )
按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
7Object setProperty(String key, String value)
调用 Hashtable 的方法 put。
8void store(OutputStream streamOut, String description)
以适合使用 load(InputStream)方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。

实例

下面的程序说明这个数据结构支持的几个方法:

  1. import java.util.*;
  2. public class PropDemo {
  3. public static void main(String args[]) {
  4. Properties capitals = new Properties();
  5. Set states;
  6. String str;
  7. capitals.put("Illinois", "Springfield");
  8. capitals.put("Missouri", "Jefferson City");
  9. capitals.put("Washington", "Olympia");
  10. capitals.put("California", "Sacramento");
  11. capitals.put("Indiana", "Indianapolis");
  12. // Show all states and capitals in hashtable.
  13. states = capitals.keySet(); // get set-view of keys
  14. Iterator itr = states.iterator();
  15. while(itr.hasNext()) {
  16. str = (String) itr.next();
  17. System.out.println("The capital of " +
  18. str + " is " + capitals.getProperty(str) + ".");
  19. }
  20. System.out.println();
  21. // look for state not in list -- specify default
  22. str = capitals.getProperty("Florida", "Not Found");
  23. System.out.println("The capital of Florida is "
  24. + str + ".");
  25. }
  26. }

以上实例编译运行结果如下:

  1. The capital of Missouri is Jefferson City.
  2. The capital of Illinois is Springfield.
  3. The capital of Indiana is Indianapolis.
  4. The capital of California is Sacramento.
  5. The capital of Washington is Olympia.
  6.  
  7. The capital of Florida is Not Found.

迭代器 iterator 用法

Java 中的 Iterator 功能比较简单,并且只能单向移动:

  • (1) 使用方法 iterator() 要求容器返回一个 Iterator。第一次调用 Iterator 的 next() 方法时,它返回序列的第一个元素。注意:iterator() 方法是 java.lang.Iterable 接口,被 Collection 继承。
  • (2) 使用 next() 获得序列中的下一个元素。
  • (3) 使用 hasNext() 检查序列中是否还有元素。
  • (4) 使用 remove() 将迭代器新返回的元素删除。