Properties集合: Properties是Hashtable的子类, Hashtable又是Map的子类
所有图是这样的
Properties类表示一组持久的属性。 Properties可以保存到流中或从流中加载
特点:
1.该集合中的键和值都是字符串类型.
2.集合中的数据可以保存到流中, 或者从流获取.
Properties有两个构造方法
Properties() 创建一个没有默认值的空属性列表。
Properties(Properties defaults) 创建具有指定默认值的空属性列表。
例子(一):
Properties集合的存和取
import java.io.IOException;
import java.util.Properties;
import java.util.Set;
public class Demo {
public static void main(String[] args) throws IOException {
Properties prt = new Properties();
//存储元素
prt.setProperty("zhangsan", "18");
prt.setProperty("lisi", "21");
prt.setProperty("wangwu", "20");
//取出所有元素
Set<String> names = prt.stringPropertyNames();
for(String name : names) {
String value = prt.getProperty(name);
System.out.println(name+": "+value);
}
}
}
运行结果:
例子(二):
把集合中的字符串值信息存储到文件中(一般用于配置文件)
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
public class Demo {
public static void main(String[] args) throws IOException {
Properties prt = new Properties();
//存储元素
prt.setProperty("zhangsan", "18");
prt.setProperty("lisi", "21");
prt.setProperty("wangwu", "20");
//需要关联输出流
FileOutputStream fos = new FileOutputStream("info.txt");
//将集合数据存储到文件中,使用store方法
prt.store(fos,"info");
fos.close();
}
}
运行结果:
文件保存在当前目录下
例子(三):
读取配置文件
list(PrintStream out)
将此属性列表打印到指定的输出流。
这个方法一般用于测试
import java.io.*;
import java.util.Properties;
public class Demo {
public static void main(String[] args) throws IOException{
Properties port = new Properties();
//读取文件Properties集合保存的文件信息
FileInputStream fis = new FileInputStream("info.txt");
port.load(fis);
port.list(System.out);
fis.close();
}
}
运行结果: