一、概述:
properties:属性集合类,是一个可以和IO流相结合使用的集合类
Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
是Hashtable的子类,说明是Map集合。
//作为Map集合使用,他没有泛型
//Properties<String,String> pop=new Properties<String,String>();他没有泛型,不能加泛型,这是错误的写法
Properties pop=new Properties();
//添加元素
//pop.put(Object,Object);
pop.put("2343", "hello");
pop.put("4562", "world");
pop.put("4356","java");
//遍历集合
Set<Object> set=pop.keySet();
for(Object s:set){
Object xx=pop.get(s);
System.out.println(s+"---"+xx);
}
二、特殊功能:
public Object setProperty(String key,String value):添加元素
public String getProperty(String key):获取元素
public Set<String> stringPropertyNames():获取所有键的集合
//创建集合对象
Properties prop=new Properties();
//添加元素
prop.setProperty("234", "hello");
prop.setProperty("4365","world");
prop.setProperty("788", "java");
//遍历
//获取所有键的集合
Set<String> set=prop.stringPropertyNames();
for(String s:set){
String ss=prop.getProperty(s);
System.out.println(s+"---"+ss);
}
三、properties与IO流的结合使用
这里的集合必须是Properties集合:
public void load(Reader reader):把文件中的数据读取到集合中
public void store(Writer writer,String comments):把集合中的数据存储到文件
public class test {
public static void main(String[] args) throws IOException {
//写数据
mystore();
//读数据
myload();
}
private static void mystore() throws IOException {
// TODO Auto-generated method stub
Properties prop=new Properties();
prop.setProperty("23", "张三");
prop.setProperty("24", "李四");
prop.setProperty("25", "王五");
//写数据
Writer wr=new FileWriter("ss.txt");
//public void store(Writer writer,String comments):
prop.store(wr, "helloworld");//后面这个参数是注释,可以随便写
wr.close();
}
private static void myload() throws IOException {
// TODO Auto-generated method stub
Properties prop=new Properties();
//public void load(Reader reader):把文件中的数据读取到集合中
//注意:文件中的数据必须是键值对形式
Reader rd=new FileReader("s.txt");
prop.load(rd);
System.out.println(prop);//{王五=45, 张三=23, 李四=34}
rd.close();
}
}