Java语言之属性集Properties类

一,概述

java.util.Properties 集合 extends Hashtable<k,v> implements Map<k,v>。Properties 类表示了一个持久的属性集,Properties可保存在流中或从流中加载。

Properties 集合是一个唯一与IO流相结合的集合。可使用Properties集合中的store方法,把集合中的临时数据,持久化写入到硬盘中存储;可使用Properties集合中的load方法,把硬盘保存的文件(键值对),读取到集合中使用。

属性列表中每个键及所对应的值都是一个字符串。Properties集合是一个双列集合,key和value默认都是字符串。

二,Properties操作字符串的方法

1,Object setProperty(String key, String value):调用Hashtable的put方法。
2,String getProperty(String key):通过key获取value值。
3,Set<String> StringPropertyNames():返回此属性列表中的属性集,相当于Map方法中的keySet方法。

 private static void show1() {
        Properties prop = new Properties();
        prop.setProperty("张颖","25");
        prop.setProperty("陈颖","21");
        prop.setProperty("李颖","23");

        String val1 = prop.getProperty("李颖");
        System.out.println(val1);//23

        Set<String> keys = prop.stringPropertyNames();
        for (String key : keys) {
            String val = prop.getProperty(key);
            System.out.println(key+":"+val);
        }
        /*
        李颖:23
        张颖:25
        陈颖:21
         */
    }
三,Properties中的store和load方法

1,void store(OutputStream out, String comments)
void store(Writer writer, String comments)
参数
OutputStream out:字节输出流,不能写入中文;
Writer writer:字符输出流,可写入中文;
String comments:注释,解释说明文件作用,不可使用中文,会产生乱码,默认是Unicode编码,一般用“”空字符串

 private static void show2() throws IOException {
        Properties prop = new Properties();
        prop.setProperty("张颖","25");
        prop.setProperty("陈颖","21");
        prop.setProperty("李颖","23");

        FileWriter fw = new FileWriter("src\\Month_05\\day5_18\\a.txt");
        prop.store(fw,"sava data");
        fw.close();
        /*
        #sava data
        #Mon May 18 11:57:26 CST 2020
        李颖=23
        张颖=25
        陈颖=21
         */
    }

2,void load(InputStream inStream)
void load(Reader reader)
参数
OutputStream out:字节输出流,不能写入中文;
Writer writer:字符输出流,可写入中文;
load方法使用步骤
1,创建Properties集合对象;
2,使用load方法读取保存键值对的文件;
3,使用stringPropertyNames方法遍历集合。

    private static void show3() throws IOException {
        Properties prop = new Properties();
        FileReader fr = new FileReader("src\\Month_05\\day5_18\\a.txt");
        prop.load(fr);
        Set<String> set = prop.stringPropertyNames();
        for (String key : set) {
            String val = prop.getProperty(key);
            System.out.println(key+"="+val);
        }
        fr.close();
        /*
        李颖=23
        张颖=25
        陈颖=21
         */
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值