概述
java.util.Properties集合 extends HashTable<k, v> implements Map<k, v>
Properties类表示了一个持久的属性集。Properties可保存在流中或从流中加载。
Properties结合是一个唯一和IO流相结合的集合
- 可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘存储中
- 可以使用Properties集合中的方法load, 把硬盘中保存的文件(键值对),读取到集合中使用
属性列表中每个键及其对应值都是一个字符串
Properties集合是一个双列集合,key和value默认都是字符串
基本Demo演示
import java.util.Properties;
import java.util.Set;
public class Demo03Properties {
public static void main(String[] args) {
Properties prop = new Properties();
// 使用setProperty往集合中加入数据
prop.setProperty("迪丽热巴", "168");
prop.setProperty("古力娜扎", "166");
prop.setProperty("玛尔扎哈", "180");
// 使用stringPropertyNames取出结合中的key, 存储到一个set集合中
Set<String> set = prop.stringPropertyNames();
// 遍历集合中的所有key和value
for (String string : set) {
// 使用getProperty方法通过key获取value
System.out.println(string + "= " + prop.getProperty(string));
}
}
}
store方法:
- void store(OutputStream out, String comments)
- void store(Writer writer, String comments)
参数:- OutputStream out: 字节输入流,不能写入中文
- Write write: 字符输入流,可以写入中文
- String comments: 注释,不能写入中文
store方法演示:
import java.io.FileWriter;
import java.util.Properties;
import java.io.IOException;
public class Demo03Properties {
public static void main(String[] args) throws IOException {
Properties prop = new Properties();
prop.setProperty("迪丽热巴", "168");
prop.setProperty("古力娜扎", "166");
prop.setProperty("玛尔扎哈", "180");
FileWriter fw = new FileWriter("fr.txt");
prop.store(fw, "Save prop data");
fw.close();
}
}
load方法:
- void load(InputStream instream)
- void load(Reader reader)
参数:
- InputStream instream: 字节输入流,不能读取中文
- Reader reader: 字符输入流,可以读取中文
Demo演示:
import java.io.FileReader;
import java.util.Properties;
import java.util.Set;
import java.io.IOException;
public class Demo03Properties {
public static void main(String[] args) throws IOException {
Properties prop = new Properties();
prop.load(new FileReader("fr.txt"));
Set<String> set = prop.stringPropertyNames();
for (String string : set) {
if(string.equals("mysql_host")){
System.out.println("mysql配置文件主机地址:" + prop.getProperty(string));
}
}
}
}