Properties(查看api实现map接口本质是一个map集合)
Properties:Properties 类表示了一个持久的属性集。属性列表中每个键及其对应值都是一个字符串。
特点:Properties 可保存在流中或从流中加载。
案例:使用map集合的put方法给集合中存储数据并且遍历
package com.edu_08;
import java.util.Properties;
import java.util.Set;
public class ProppertiesDemo {
public static void main(String[] args) {
//创建Properties对象,本质上上是一个map几个,但是键值都是String类型
Properties prop = new Properties();
//给对象中存储元素
prop.put("zhangjie", "xiena");
prop.put("huangxiaoming", "baby");
prop.put("wanglaoshi", "zhangziyi");
//map集合遍历
//获取键的集合
Set<Object> keys = prop.keySet();
for (Object key : keys) {
System.out.println(key+":"+prop.get(key));
}
}
}
案例:我有一个文本文件,我知道数据是键值对形式的,但是不知道内容是什么。
请写一个程序判断是否有“lisi”这样的键存在,如果有就改变其值为”100”
1.创建集合对象
2.将文件中的键值对加载到集合中
3.获取多有的键的集合,遍历,判断
4.如果存在lisi,的话,给集合中重新存储键值对lisi=100
5.将集合中的数据存储到文件中
package com.edu_09;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;
public class PropTest {
public static void main(String[] args) throws IOException {
//1.创建集合对象
Properties prop = new Properties();
// 2.将文件中的键值对加载到集合中
prop.load(new FileReader("prop3.txt"));
//3.获取多有的键的集合,遍历,判断
Set<String> keys = prop.stringPropertyNames();
// 4.如果存在lisi,的话,给集合中重新存储键值对lisi=100
for (String key : keys) {
if ("lisi".equals(key)) {
prop.setProperty(key, "100");
}
}
//5.将集合中的数据存储到文件中
prop.store(new FileWriter("prop3.txt"), null);
}
}