80 javaIO_6 _Properties集合补充

本文深入讲解Java中Properties集合的使用,包括其特点、操作方法及与流相关的应用。通过实例展示了如何添加、遍历属性,以及如何进行数据的保存与加载。

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

80 javaIO_6 _Properties集合补充

  1. Properties: 属性集合(继承HashTable,线程安全)

  2. 特点:

    • 存储属性名和属性值
    • 属性名和属性值都是字符串类型
    • 没有泛型
    • 和流有关

代码1:

package com.wlw.io.demo04;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

//Properties集合的使用
public class PropertiesDemo {
    public static void main(String[] args) throws Exception{
        //1.创建集合
        Properties properties = new Properties();
        //2.添加
        properties.setProperty("username","zhangsan");// 调用 Hashtable 的方法 put。
        properties.setProperty("age","20");

        //3.遍历
        System.out.println("----------------------------------------------");
        //3.1 keyset
        System.out.println("-----------------------3.1-----------------------");
        Set<Object> keySet = properties.keySet();
        for (Object o : keySet) {
            String s = (String) o;
            System.out.println(s+"=======>"+properties.getProperty(s));
        }
        //3.2 entrySet
        System.out.println("-----------------------3.2-----------------------");
        Set<Map.Entry<Object, Object>> entrySet = properties.entrySet();
        for (Map.Entry<Object, Object> entry : entrySet) {
            System.out.println(entry.getKey()+"=======>"+entry.getValue());
        }
        //3.3 stringPropertyNames()
        System.out.println("-----------------------3.3-----------------------");
        Set<String> set = properties.stringPropertyNames();
        for (String s : set) {
            System.out.println(s+"=======>"+properties.getProperty(s));
        }

        //4.和流有关的方法
        //4.1 list() : 把 集合properties中的数据写入PrintWriter.txt 这个文件中
       /* System.out.println("--------------------4.1 list--------------------------");
        PrintWriter pw = new PrintWriter("D:\\Program Files\\IDEAworkspace\\file\\PrintWriter.txt");
        properties.list(pw);
        pw.close();*/

        //4.2 store()  保存
        //把 集合properties中的数据写入store.properties这个文件中,第二个参数是注释(String类型),也会被写入文件中
        /*System.out.println("--------------------4.2 store------------------------");
        FileOutputStream fos = new FileOutputStream("D:\\Program Files\\IDEAworkspace\\file\\store.properties");
        properties.store(fos,"zhe shi zhu shi");
        fos.close();*/

        //4.3 load() 加载  从输入流中读取属性列表(键和元素对)。
        //将文件中数据 读入到 properties 集合对象中
        System.out.println("--------------------4.3 load() 加载------------------------");
        Properties properties2 = new Properties();
        FileInputStream fis = new FileInputStream("D:\\Program Files\\IDEAworkspace\\file\\store.properties");
        properties2.load(fis);
        fis.close();
        System.out.println(properties2.toString());

    }
}
/*
----------------------------------------------
-----------------------3.1-----------------------
age=======>20
username=======>zhangsan
-----------------------3.2-----------------------
age=======>20
username=======>zhangsan
-----------------------3.3-----------------------
age=======>20
username=======>zhangsan
--------------------4.3 load() 加载------------------------
{age=20, username=zhangsan}

*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悬浮海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值