详细深入的理解Properties集合使用

简介: properties集合使用及Spring依赖注入之properties

properties集合使用及Spring依赖注入之properties

一、properties集合

1、Properties类介绍

JDK API文档描述:

       Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载 。属性列表中每个键及其对应值都是一个字符串。


       一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。


       因为Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项。相反,应该使用 setProperty 方法。如果在“不安全”的 Properties 对象(即包含非 String 的键或值)上调用 store 或 save 方法,则该调用将失败。类似地,如果在“不安全”的 Properties 对象(即包含非 String 的键)上调用 propertyNames 或 list 方法,则该调用将失败。


总结:Properties是Hashtable集合的子类,也是线程安全的。

   Properties 类表示了一个持久的属性集。 Properties可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。


2、Properties类的特点

继承于Hashtable,是线程安全的键值对存储结构。java.util.Properties 集合 extends Hashtable<k,v>implements Map<k,v>


Properties可保存在流中或从流中加载。


只能保存字符串的键值对。


该集合不能写泛型


可以持久化的属性集。键值可以存储到集合中,也可以存储到硬盘、U盘等,store 把流中临时的数据 持久化到硬盘中存储


唯一的一个和IO流有关的技术结合使用


load把硬盘中的文件(键值对) 读取到 集合中


3、properties集合方法


image.png

4、properties集合方法具体使用


/**
 * @author 王恒杰
 * @version 1.0
 * @date 2021/11/10 19:53
 * @email 1078993387@qq.com
 * @Address 天津
 * @Description:properties相关集合类
 */
public class PropertiesTest {
    @Test
    public void PropertiesFileTest() throws IOException {
        //创建properties集合对象
        Properties pro = new Properties();
        //    设计键值对
        pro.setProperty("1", "a");
        pro.setProperty("2", "b");
        pro.setProperty("3", "c");
        // 据键值对获取值
        String value = pro.getProperty("1");
        System.out.println(value);
        System.out.println("--------------");
        //不常用的遍历方法
        Set<String> namesSet = pro.stringPropertyNames();
        for (String name : namesSet) {
            System.out.println(name);
        }
        System.out.println("--------------");
        //读取属性文件中的内容(Properties集合特有方法)
        FileReader fr = new FileReader("pro.properties");
        pro.load(fr);
        fr.close();
        System.out.println("--------------");
        //    把键值对写入文件中(Properties集合特有的方法)
        FileOutputStream fos = new FileOutputStream("pro2.properties");
        pro.store(fos, "Comments");
        fos.close();
    }
}

二、Spring依赖注入之properties

properties类型


 //properties集合
    private Properties properties;
   //properties集合遍历
        for(Map.Entry entry:properties.entrySet()){
            System.out.println(entry.getKey()+":"+entry.getValue());
        }

properties类型注入

<property name="properties">
            <props>
                <prop key="key1">value1</prop>
                <prop key="key2">value2</prop>
                <prop key="key3">value3</prop>
                <prop key="key4">value4</prop>
            </props>
        </property>
相关文章
|
18天前
Properties转换成Map Map转Properties以及读取Properties乱码解决String转
Properties转换成Map Map转Properties以及读取Properties乱码解决String转
15 0
|
4月前
|
IDE Java 开发工具
灵活配置 Spring 集合:List、Set、Map、Properties 详解
使用<property>标签的value属性配置原始数据类型和ref属性配置对象引用的方式来定义Bean配置文件。这两种情况都涉及将单一值传递给Bean
79 1
|
4月前
Spring-数组、List、Set、Map、Properties依赖注入格式
Spring-数组、List、Set、Map、Properties依赖注入格式
23 0
|
7月前
|
Java
Java集合Properties
Java集合Properties
49 0
|
8月前
Properties集合
Properties集合
35 0
|
存储 安全 Java
详细深入的理解Properties集合使用
properties集合使用及Spring依赖注入之properties
73 0
详细深入的理解Properties集合使用
|
XML 存储 安全
一文带你全面了解Properties类
一文带你全面了解Properties类
120 0
一文带你全面了解Properties类
|
存储 Java
java的缓冲流及使用Properties集合存取数据(遍历,store,load)
缓冲流 概述 字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流:BufferedReader,BufferedWriter 缓冲流原理 缓冲区是内存中的一块特定区域,与在内存中定义一个数组的区域不同 BufferedOutputStream i
|
存储 编解码 Java
Properties 属性操作|学习笔记
快速学习 Properties 属性操作
125 0
Properties 属性操作|学习笔记