JavaSE——Properties集合

Properties集合

Properties作为Map集合的使用

介绍:
  • 是一个Map体系的集合类
  • Properties可以保存到流中或从流中加载
  • 属性列表中的每个键及其对应的值都是一个字符串
基本使用
public static void main(String[] args) {

    //定义Properties对象
    Properties prop = new Properties();

    //增:prop.put("Key", "Vlaue");
    prop.put("小龙女", "尹志平");
    prop.put("郭襄", "杨过");
    prop.put("电话", 123123123123);
    System.out.println(prop);//{小龙女=尹志平,郭襄=杨过,电话=123123123123}


    //删:prop.remove("Key");
    prop.remove("郭襄");
    System.out.println(prop);//{小龙女=尹志平,电话=123123123123}

    //改:prop.put("Key", "Vlaue"); --- 如果键不存在,那么就添加,如果键存在,那么就覆盖.
    prop.put("小龙女", "杨过");
    System.out.println(prop);//{小龙女=杨过,电话=123123123123}

    //查:prop.get("Value");
    Object value = prop.get("电话");
    System.out.println(value);//123123123123

    //遍历:创建prop.keySet();对象
    Set<Object> keys = prop.keySet();
    for (Object key : keys) {
        Object value = prop.get(key);
        System.out.println(key + "=" + value);
    }

    System.out.println("========================");

    //装的是所有的键值对对象.
    Set<Map.Entry<Object, Object>> entries = prop.entrySet();
    for (Map.Entry<Object, Object> entry : entries) {
        Object key = entry.getKey();
        Object value = entry.getValue();
        System.out.println(key + "=" + value);
    }

}

Properties作为Map集合的特有方法

方法名 说明
Object setProperty(String key, String value) 设置集合的键和值,都是String类型,底层调用 Hashtable方法 put
String getProperty(String key) 使用此属性列表中指定的键搜索属性
Set stringPropertyNames() 从该属性列表中返回一个不可修改的键集,其中键及其对应的值是字符串
        Properties prop = new Properties();
        //1增:prop.setProperty("Key", "Value");(键和值,只能是String类型)
        prop.setProperty("小龙女", "尹志平");
        prop.setProperty("郭襄", "杨过");
        prop.setProperty("黄蓉", "欧阳克");

        //2获取:String return = prop.getProperty("Key");
        System.out.println(prop.getProperty("小龙女"));
        System.out.println(prop.getProperty("郭襄"));
        System.out.println(prop.getProperty("黄蓉"));
        System.out.println(prop.getProperty("周芷若"));

        //参数2 是当key找不到时,返回指定的默认值
        System.out.println(prop.getProperty("神雕", "我叫默认值"));

        //3获取所有的key的set集合
        Set<String> keys = prop.stringPropertyNames();

        //遍历所有的key 获取对应的值
        for (String key : keys) {
            System.out.println(key + "----" + prop.getProperty(key));
        }

Properties和IO流相结合的方法

和IO流结合的方法
方法名 说明
void load(Reader reader) 从输入字符流读取属性列表(键和元素对)
void store(Writer writer, String comments) 将此属性列表(键和元素对)写入此 Properties表中,以适合使用 load(Reader)方法的格式写入输出字符流
代码1 Properties结合BufferedWriter存数据
Properties prop = new Properties();
prop.setProperty("小龙女", "尹志平");
prop.setProperty("郭襄", "杨过");
prop.setProperty("黄蓉", "欧阳克");

BufferedWriter bw = new BufferedWriter(new FileWriter("module01/persons.properties"));
//prop.store(bw, "存的是人物信息");
//参数2 是添加的注解,会存到文件中, 可以不加 传null
prop.store(bw, null);//通过字符流 把prop里的数据写入到文件
bw.close();
代码1 Properties结合BufferedReader加载数据
Properties prop1 = new Properties();
BufferedReader br = new BufferedReader(new FileReader("module01/persons.properties"));
prop1.load(br);//通过字符流,把文件的内容加载进Properties对象里

System.out.println(prop1.getProperty("小龙女"));
System.out.println(prop1.getProperty("郭襄"));
System.out.println(prop1.getProperty("黄蓉"));
posted @ 2022-08-19 21:37  云锦独成妍  阅读(35)  评论(0)    收藏  举报