11 Properties


Map集合体系

Properties属性集对象

● 其实就是一个Map集合,但是我们一般不会当集合使用,因为HashMap更好用。

Properties核心作用

Properties代表的是一个属性文件,可以把自己对象中的键值对信息存入到一个属性文件中去

● 属性文件,后缀是 .properties 结尾的文件,里面的内容都是key=value,后续做系统配置的信息的。

Properties的API:

Properties和IO流结合的方法

构造器

说明

void load?(InputStream inStream)

从输入字节流读取属性列表(键和元素对)

void load?(Reader reader)

从输入字符流读取属性列表(键和元素对)

void store?(OutputStream out, String comments)

将此属性列表(键和元素对)写入此 Properties表中,以适合于使用 load(InputStream)方法的格式写入输出字节流

void store?(Writer writer, String comments)

将此属性列表(键和元素对)写入此 Properties表中,以适合使用 load(Reader)方法的格式写入输出字符流

public Object setProperty(String key, String value)

保存键值对(put)

public String getProperty(String key)

使用此属性列表中指定的键搜索属性值 (get)

public Set stringPropertyNames()

所有键的名称的集合  (keySet())

【示例】

/**
    目标:Properties的概述和使用(框架底层使用,了解这个技术即可)(保存数据到属性文件)

    小结:
            Properties可以保存键值对数据到属性文件

 */
public class PropertiesDemo01 {
    public static void main(String[] args) throws Exception {
        // 需求:使用Properties把键值对信息存入到属性文件中去。
        Properties properties = new Properties();
        properties.setProperty("admin", "123456");
        properties.setProperty("dlei", "003197");
        properties.setProperty("heima", "itcast");
        System.out.println(properties);

        /**
         参数一:保存管道 字符输出流管道
         参数二:保存心得
         */
        properties.store(new FileWriter("io-app2/src/users.properties")
                , "this is users!! i am very happy! give me 100!");
    }
}

 运行结果:

{admin=123456, dlei=003197, heima=itcast}

 查看新生成的 users.properties 文件

#this is users!! i am very happy! give me 100!
#Mon Jan 03 14:13:59 CST 2022
admin=123456
dlei=003197
heima=itcast

【示例2】

/**
     目标:Properties读取属性文件中的键值对信息。(读取)

     小结:
     属性集对象可以加载读取属性文件中的数据!!
 */
public class PropertiesDemo02 {
    public static void main(String[] args) throws Exception {
        // 需求:Properties读取属性文件中的键值对信息。(读取)
        Properties properties = new Properties();
        System.out.println(properties);

        // 加载属性文件中的键值对数据到属性对象properties中去
        properties.load(new FileReader("io-app2/src/users.properties"));

        System.out.println(properties);
        String rs = properties.getProperty("dlei");
        System.out.println(rs);
        String rs1 = properties.getProperty("admin");
        System.out.println(rs1);
    }
}

 运行结果:

{}
{admin=123456, dlei=003197, heima=itcast}
003197
123456