Properties是Java集合框架中的一种特殊的Map实现类,它用于处理键值对的配置文件。下面是Properties的特点和使用方法的概述,以及附上示例代码和说明。
一、特点:
1. Properties继承自Hashtable类,因此它是基于哈希表实现的。
2. Properties中的键和值都是字符串类型。
3. Properties通常用于读取和写入配置文件,例如.properties文件。
二、使用方法:
1. 创建Properties对象:
可以使用无参构造方法创建一个空的Properties对象,或者使用带有初始属性的构造方法创建一个具有初始属性的Properties对象。
2. 添加属性:
使用setProperty(key, value)方法或put(key, value)方法向Properties对象中添加属性。
3. 获取属性:
使用getProperty(key)方法根据键获取对应的属性值,如果键不存在则返回null。
4. 遍历属性:
可以使用entrySet()方法获取属性的键值对集合,然后使用foreach循环或迭代器遍历集合中的属性。
5. 加载和保存属性:
可以使用load(inputStream)方法从输入流中加载属性,使用store(outputStream, comments)方法将属性保存到输出流。
下面是一个示例代码,展示了如何使用Properties:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
public class PropertiesExample {
public static void main(String[] args) {
// 创建Properties对象
Properties properties = new Properties();
try {
// 加载属性文件
FileInputStream fis = new FileInputStream("config.properties");
properties.load(fis);
fis.close();
// 输出原属性
System.out.println("原属性:");
printProperties(properties);
// 添加和修改属性
properties.setProperty("database", "mysql");
properties.setProperty("port", "3306");
// 输出修改后的属性
System.out.println("\n修改后的属性:");
printProperties(properties);
// 保存属性文件
FileOutputStream fos = new FileOutputStream("config.properties");
properties.store(fos, "Updated properties");
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 打印属性
public static void printProperties(Properties properties) {
for (var entry : properties.entrySet()) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
}
}
在上述示例中,首先创建了一个Properties对象,并使用load方法从配置文件"config.properties"中加载属性。然后使用setProperty方法添加和修改属性,使用store方法将属性保存回配置文件。最后通过printProperties方法打印原属性和修改后的属性。