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的使用是很简单的,重要的是需要理解这种思想。