Java-Properties

本文详细介绍了Java中的Properties集合,包括其继承关系、特点、构造方法及成员方法等。特别聚焦于如何利用Properties集合实现数据的持久化存储,通过实例演示了数据的存储与加载过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
 * java.util.Properties集合 继承 Hashtable
 * Properties集合的健和值默认都是字符串
 * Properties集合是唯一一个和IO流相结合的集合,可以把集合中的临时数据持久化存储
 *
 * Properties集合中特有的方法:
 *     构造方法:
 *         Properties()     
 *     成员方法:
 *         Object setProperty(String key, String value) 往Properties集合中添加数据,调用 Hashtable 的方法 put。
 *             返回值:如果key不重复,返回的是null,如果key重复,返回的是被替换的value值
 *         String getProperty(String key)  根据健,查找值 相当于Map中的get(key)方法
 *             返回值:如果有对应的健,则返回键对应的值,如果没有对应的健,则返回null
 *         Set<String> stringPropertyNames() 返回此属性列表中的键集  相当于Map集合中的keySet方法
 *             
 *     和流相结合的方法:
 *         void store(OutputStream out, String comments)  
 *         void store(Writer writer, String comments)  
 *         作用:把集合中的数据,用方法中传递的流以键值对的方式写入到文件中(临时存储(集合中)-->持久化(文件中))
 *         参数:
 *             OutputStream:以字节的方式写入
 *             Writer:以字符的方式写入
 *             comments:注释,说明写的文件内容,不建议使用中文,会查询Unicode编码表,一般使用""
 *
 *         void load(InputStream inStream)
 *         void load(Reader reader)  
 *         作用:把文件中保存的键值对,以构造方法中的流读取到集合中  (持久化(文件中)-->临时存储(集合中)-)
 *         参数:
 *             InputStream:一次读取一个字节
 *             Reader:一次读取一个字符
 *    注意:如果操作的数据中有中文,需要使用字符流
 *     

 */


/*
     *    使用store方法把集合中的数据,持久化到文件中
     */
    private static void storeIoData() throws IOException {
        Properties pp = new Properties();
        pp.put("name", "张三");
        pp.put("age", "12");

        // 字节流
        // FileOutputStream fos = new FileOutputStream("project.properties");

        // 字符流
        FileWriter fw = new FileWriter("project.properties");

        pp.store(fw, "explanation");
        fw.close();

    }


    /*
     * 使用load方法,把文件中的键值对,读取到集合中
     * 注意:
     *     在Properties文件中,使用注释的格式是一个井号#
     *     文件中一行结束,不要使用;会当成值的一部分
     */
    private static void loadIoData() throws IOException {
        Properties pp = new Properties();
        FileReader fr = new FileReader("project.properties");
        pp.load(fr);
        fr.close();
        // 第一种遍历 pp.stringPropertyNames()
        Set<String> propertyNames = pp.stringPropertyNames();
        for (String str : propertyNames) {
            System.out.println(str + " : " + pp.getProperty(str));
        }
        // 第二种遍历pp.keySet()
        Set<Object> keySet = pp.keySet();
        for (Object obj : keySet) {
            System.out.println(obj + " : " + pp.get(obj));
        }
    }






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值