java Properties属性集类介绍

Properties间接实现了Map接口,它可以从文件当中加载内容到集合当中。

/**
 * 概述:java.util.Properties继承于Hashable,表示一个持久的属性集
 * 特点:
 * 1,properties可以当成map集合使用
 * 2,可以加载配置文件,读取配置文件中的数据到我们集合当中(内存当中)
 * 3,如果Properties结合流加载配置文件的话,Properties里面的键和值只能是【String类型】
 */

简单使用案例

public class Test {
    public static void main(String[] args) {
        
        Properties properties = new Properties();
        properties.setProperty("account","12345678");
        properties.setProperty("password","123456");

        //获取所有的键
        Set<String> keys = properties.stringPropertyNames();
        //keys.forEach(System.out::println);
        for (String key : keys) {
            //根据键找值
            System.out.println(key+":"+properties.getProperty(key));
        }
    }
}

结合字符流或者字节流来加载配置文件内容

public class Test2 {
    public static void main(String[] args) {
        /**
         * Properties类操作配置文件
         * 1,读取配置文件中的数据
         * load方法
         * 2,往配置文件中写入数据(不常见,一般手动就往配置文件写好了)
         * 3,Properties不是一定只能读取.properties后缀的文件
         * 注意:文件中都是键值对形式的数据,一般可以使用等号,冒号,空格来分割键值对
         */
        try (
                //如果配置文件中有 中文那么使用字符流
                FileInputStream fileInputStream = new FileInputStream("Properties属性集类\\config\\db.properties");
                ){
            Properties properties = new Properties();
            //把文件加载到properties中
            properties.load(fileInputStream);
            System.out.println(properties.getProperty("username"));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

写入配置文件

public class Test3 {
    public static void main(String[] args) throws IOException {
        /**
         * Properties向配置文件写入数据
         */
        Properties properties = new Properties();

        properties.setProperty("username","zhanghao");
        properties.setProperty("password","123456");
        FileOutputStream fileOutputStream = new FileOutputStream("Properties属性集类\\config\\test.properties");
        //写入数据到文件
        properties.store(fileOutputStream,"这是一个注释");
        fileOutputStream.close();
    }
}

posted @ 2022-07-03 18:33  在线电影制作人  阅读(6)  评论(0)    收藏  举报  来源