Properties

虽然不经常使用Hashtable,但是会经常使用Properties。

Properties是Hashtable的子类,是线程安全的。

Properties的key和value都是String类型的,又称为属性对象。

特点是key无序、不可重复。

其中有几个常用的方法:

  • Object setProperty(String key,String value):添加元素;
  • String getProperty(String key):通过key获得value;
  • void load(Reader reader/InputStream stream):将文件的数据存储到Properties对象中。

简单的通过Properties对象存取数据:

package com.dh.map;

import java.util.Properties;

public class Properties01 {

    public static void main(String[] args) {
        Properties properties = new Properties();
        properties.setProperty("k1","v1");
        properties.setProperty("k2","v2");

        String s = properties.getProperty("k1");
        System.out.println(s);
    }
}

IO和Properties结合:

将文件中的数据(硬盘)加载到Properties对象(内存)中。文件中的数据顺着管道加载到Map集合中。

新建一个没有后缀的文件,内容为:

k1=v1
k2=v2

=左边的是key,=右边的是value,也可以使用key:value的形式,都是String类型;

key不能重复,重复会覆盖内容。

package com.dh.map;

import java.io.FileInputStream;
import java.util.Properties;

public class Properties02 {

    public static void main(String[] args) throws Exception{
        Properties properties = new Properties();
        //直接throws异常
        FileInputStream fis = new FileInputStream("Aggregate/test");
        properties.load(fis);
        //直接输出properties
        System.out.println(properties);
        //获取指定的key的value值
        String s = properties.getProperty("k1");
        System.out.println(s);
    }
}

结果:

{k1=v1, k2=v2}
v1

经常变化的数据可以书写到文件中在程序中动态的获取,如果写在程序中,修改源代码之后需要重新的编译;而写在文件中,就可以直接修改文件,而不需要修改源代码。

类似于以上机制的文件,称为配置文件,以key=value的形式存在的,称为属性配置文件,官方建议以.properties为后缀(但不是必须的)


Properties的使用是很简单的,重要的是需要理解这种思想。

posted @ 2021-02-10 18:05  deng-hui  阅读(216)  评论(0编辑  收藏  举报