Properties
是Java中非常常用的一个持久的属性集类。Properties
可保存在流中或从流中加载,其属性列表中每个键及其对应值都是一个字符串。
下面的例子对Properties
中常用的几个方法做下示例说明
- load(InputStream inStream)
从输入流中读取属性列表(键和元素对)
- getProperty(String key)
用指定的键在此属性列表中搜索属性
- getProperty(String key, String defaultValue)
用指定的键在属性列表中搜索属性。如果未找到属性,则此方法返回默认值变量
- propertyNames()
返回属性列表中所有键的枚举
- setProperty(String key, String value)
设置键值对
- store(OutputStream out, String comments)
将属性集文件更新
- list(PrintStream out)
将属性集写入到流文件
我们的测试properties文件内容为
jdbc.url=jdbc\:mysql\://localhost\:3306/sampledb
jdbc.username=root
jdbc.driver=com.mysql.jdbc.Driver
jdbc.password=root
整体代码如下
package com.zhangqi.jdk;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;
public class PropertiesTest {
public static void main(String[] args) throws FileNotFoundException, IOException {
Properties prop = new Properties();
// 从输入流中读取属性列表(键和元素对)
prop.load(new FileInputStream(new File("propTest.properties")));
// 用指定的键在此属性列表中搜索属性
String driver = prop.getProperty("jdbc.driver");
System.out.println(driver);
// 用指定的键在属性列表中搜索属性。如果未找到属性,则此方法返回默认值变量
String username = prop.getProperty("name", "admin");
System.out.println(username);
// 遍历属性值
Set<String> propNames = prop.stringPropertyNames();
Iterator<String> it = propNames.iterator();
while (it.hasNext()) {
String key = (String) it.next();
String value = prop.getProperty(key);
System.out.println(key + "=" + value);
}
// 调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。强制要求为属性的键和值使用字符串
prop.setProperty("name", "lilei");
String name = prop.getProperty("name");
System.out.println(name);
// 将属性集文件更新
prop.store(new FileOutputStream(new File("propTest.properties")), "zhangqi");
// 创建新的流文件
PrintStream fis = new PrintStream(new File("propNew.properties"));
// 将属性集写入到流文件
prop.list(fis);
}
}