Java进阶篇--Properties集合

Properties 是 Java 中表示属性集合的类,通常用于读取和写入配置文件。它继承自 Hashtable 类,并实现了 Map 接口。

Properties 对象中的每个属性都是键值对,键和值都是字符串类型。可以使用 Properties 对象来读取、写入和操作属性的集合。

以下是一些常见的操作 Properties 对象的方法:

  • 添加属性:
  1. setProperty(String key, String value): 向 Properties 对象添加键值对。
  2. put(Object key, Object value): 与 setProperty() 方法相同,但参数类型为 Object。
  • 获取属性:
  1. getProperty(String key): 根据键获取对应的值。
  2. getProperty(String key, String defaultValue): 根据键获取对应的值,如果键不存在,则返回默认值。
  • 遍历属性:
  1. propertyNames(): 返回一个枚举对象,包含所有键的名称。
  2. entrySet(): 返回包含键值对的 Set 集合。
  • 加载和保存属性:
  1. load(InputStream inputStream): 从输入流中加载属性。
  2. store(OutputStream outputStream, String comments): 将属性写入到输出流中。 

注意:在实际应用中,需要处理可能发生的 IOException 异常,并适当关闭流对象

扩展小知识:

IOException 异常是 Java 中的一个标准异常类,它属于 java.io 包。IOException 表示输入或输出操作期间发生的异常情况。

在 Java 的输入/输出操作中,可能会出现各种错误和异常情况,例如文件不存在、文件无法读取或写入、网络连接问题等。这些异常情况都可以用 IOException 来表示。

IOException 是 Exception 类的子类,它继承了 Exception 的常用方法和属性。通常,当你在处理文件、网络连接、输入流和输出流时,可能会遇到需要捕获和处理 IOException 的情况。

以下是一些常见的 IOException 及其含义:

  1. FileNotFoundException:文件不存在或无法访问。
  2. EOFException:在读取数据时到达文件末尾。
  3. SocketException:网络套接字出现问题,如连接断开、超时等。
  4. IOException 的其他子类包括 EOFException、InterruptedIOException 等。

在处理 IOException 时,通常使用 try-catch 块来捕获并处理异常,确保程序能够正确处理可能出现的异常情况,以保证程序的健壮性和可靠性。

代码示例:

import java.util.*;

public class myClass {
    public static void main(String[] args) {
        Properties p = new Properties();

        // 设置属性的键值对
        p.setProperty("Background-color", "red");
        p.setProperty("Font-size", "14px");
        p.setProperty("Language", "chinese");
        p.setProperty("Theme", "dark");

        // 获取所有属性的键的枚举对象
        Enumeration<Object> keys = p.keys();
        while (keys.hasMoreElements()) {
            // 获取当前键和对应的值
            String key = (String) keys.nextElement();
            String value = p.getProperty(key);

            // 打印当前键值对的信息
            System.out.println("Key: " + key);
            System.out.println("Value: " + value);

            // 根据特定条件执行逻辑
            if (key.equals("Theme")) {
                System.out.println("这是当前主题.");
            }

            System.out.println("----------------------------------");
        }
    }
}

运行结果:

Key: Language
Value: chinese
----------------------------------
Key: Theme
Value: dark
这是当前主题.
----------------------------------
Key: Background-color
Value: red
----------------------------------
Key: Font-size
Value: 14px
----------------------------------

扩展小知识:

Enumeration 接口是 Java 中用于遍历集合和序列(如列表、向量等)中的元素的接口。它定义了两个方法:hasMoreElements() 和 nextElement()。

  1. hasMoreElements():用于检查枚举对象中是否还有更多的元素。如果有,则返回 true;否则,返回 false。
  2. nextElement():用于获取枚举对象中的下一个元素。它返回的是一个对象,你需要根据实际情况进行类型转换。

Enumeration 接口在 Java 1.0 中引入,它是一个早期的迭代器形式。后来,Java 2(JDK 1.2)引入了更强大的迭代器接口 Iterator,并推荐使用 Iterator 来替代 Enumeration,因为它提供了更多的操作和功能。但为了向后兼容性,Enumeration 仍然被保留在标准库中,并且在某些特定的情况下仍然会被使用。

注意:在 Java 5(JDK 1.5)之后,引入了 foreach 循环语法,使得直接对集合进行遍历更加便捷和简洁,不再需要显式地使用 Enumeration 或 Iterator。

猜你喜欢

转载自blog.csdn.net/m0_74293254/article/details/132375780