Properties集合的应用

时间:2021-09-22 11:28:01

关于Properties,是一个比较特殊的集合,集合里只能存字符串类型。

/*
Properties:是一个Map集合,存储的是属性,属性名和属性值必须都是字符串类型的,所以
这个集合类没有使用泛型

这是一个可以和流结合使用的集合类
*/

Properties的简单应用

往集合里添加对象:setProperty();
获取集合的键值:stringPropertyNames();
获取集合的value值:getProperty(key);

public static void fun1()
{
//创建一个集合类对象
Properties pro = new Properties();

//向集合中添加属性键值对
pro.setProperty("name","lisi");
pro.setProperty("age","20");


Set<String> keys = pro.stringPropertyNames();//得到所有键的集合

Iterator<String> ite = keys.iterator();
while(ite.hasNext())
{
String key = ite.next();
String value = pro.getProperty(key);
System.out.println(key+"="+value);
}
//修改集合中的姓名----在内存中做的修改
pro.setProperty("name","zhangsan");
}

利用Properties查看系统属性集

public static void fun2()throws IOException{
Properties pro = System.getProperties();

PrintWriter fw = new PrintWriter("lala.txt");
pro.list(System.out);//可以将内容直接输出到控制台

pro.setProperty("user.country","Chinese");
//list可以接收printWriter和printStream,我们将内容直接输出到文件
pro.list(fw);
fw.close();
}

读取文件中的键值对,并修改内容存入文件

public static void fun3()throws IOException{
Properties pro = new Properties();
FileReader fr = new FileReader("config.properties");

pro.load(fr);//加载流中的内容

pro.setProperty("color","blue");

FileWriter fw = new FileWriter("config.properties");
pro.store(fw,"默认值");//将Properties中的内容加载到文件
//其实就是写入输出流
}