Java 中的 Properties 类

2025年4月1日 | 3 分钟阅读

properties 对象包含键和值,两者都是字符串。java.util.Properties 类是 Hashtable 的子类。

它可用于根据属性键获取属性值。Properties 类提供了从属性文件获取数据和将数据存储到属性文件的方法。此外,它还可用于获取系统属性。

属性文件的优点

更改属性文件中的信息无需重新编译: 如果更改了属性文件中的任何信息,则无需重新编译 Java 类。它用于存储需要频繁更改的信息。

Properties 类的构造函数

方法描述
Properties()它创建一个空的属性列表,没有默认值。
Properties(Properties defaults)它创建一个具有指定默认值的空属性列表。

Properties 类的方法

Properties 类常用的方法如下。

方法描述
public void load(Reader r)它从 Reader 对象加载数据。
public void load(InputStream is)它从 InputStream 对象加载数据。
public void loadFromXML(InputStream in)它用于将指定输入流上的 XML 文档所表示的所有属性加载到此属性表中。
public String getProperty(String key)它根据键返回对应的值。
public String getProperty(String key, String defaultValue)它查找具有指定键的属性。
public void setProperty(String key, String value)它调用 Hashtable 的 put 方法。
public void list(PrintStream out)它用于将属性列表打印到指定的输出流。
public void list(PrintWriter out))它用于将属性列表打印到指定的输出流。
public Enumeration<?> propertyNames())它返回属性列表中所有键的枚举。
public Set<String> stringPropertyNames()它返回属性列表中键的集合,其中键及其对应值都是字符串。
public void store(Writer w, String comment)它将属性写入 writer 对象。
public void store(OutputStream os, String comment)它将属性写入 OutputStream 对象。
public void storeToXML(OutputStream os, String comment)它将属性写入 writer 对象,以生成 XML 文档。
public void storeToXML(Writer w, String comment, String encoding)它将属性写入 writer 对象,以使用指定的编码生成 XML 文档。

从属性文件获取信息的 Properties 类示例

要从属性文件获取信息,请先创建属性文件。

db.properties

现在,让我们创建 Java 类来读取属性文件中的数据。

Test.java

输出

system
       oracle

现在,如果您更改了属性文件的值,则无需重新编译 Java 类。这意味着没有维护问题。


获取所有系统属性的 Properties 类示例

通过 System.getProperties() 方法,我们可以获取系统的所有属性。让我们创建一个获取系统属性信息的类。

Test.java

输出

java.runtime.name = Java(TM) SE Runtime Environment
sun.boot.library.path = C:\Program Files\Java\jdk1.7.0_01\jre\bin
java.vm.version = 21.1-b02
java.vm.vendor = Oracle Corporation
java.vendor.url = http://java.oracle.com/
path.separator = ;
java.vm.name = Java HotSpot(TM) Client VM
file.encoding.pkg = sun.io
user.country = US
user.script = 
sun.java.launcher = SUN_STANDARD
...........

创建属性文件的 Properties 类示例

现在让我们编写代码来创建属性文件。

Test.java

让我们看看生成的属性文件。

info.properties