java.util.Properties集合 extends Hashtable<k,v>implements Map<k,v>。它表示了一个持久的属性集,可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。它是唯一一个和IO流相结合的集合。
①可以使用该集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储。本来集合中的数据是内存中的,程序结束就没了。
②可以使用该集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用
③属性列表中每个键及其对应值都是一个字符串,key和value默认都是字符串
代码举例:
//使用该集合存储数据,遍历取出其中的元素。
//因为默认是字符串类型,所以有字符串特有的方法
//方法添加数据,调用Hashtable的方法put
1.Object setProperties()
//用指定的键在此属性列表中搜索属性,即获得值,相当于map集合中get方法
2.String getProperties()
//返回此属性列表中的键集,其中该键及其对应值是字符串,相当于map集合中的keySet()方法
3.Set<String> stringPropertyNames()
Demo类:
Properties prop = new Properties();
prop.setProperties("樊萌萌","168");
prop.setProperties("孙佳宁","170");//必须要是字符串类型
//当然也可以使用put方法,键值类型均为Object,不过不太建议用,最好用它特有的方法
//使用stringPropertyNames()取出键,存储到Set集合中
Set<String> set = prop.stringPropertyNames();
//遍历set集合,读取值
for(String key:set){
String value = prop.getProperties(key);
}
/*①可以使用该集合中的方法store,把集合中的临时数据,
持久化写入到硬盘中存储。本来集合中的数据是内存中的,程序结束就没了。*/
void store(OutputStream out,String comments)
void store(Writer writer,String comments)
//参数:
OutputStream:字节输出流,不能写入中文
Writer:字符输出流,可以写中文
String comments:
注释,用来解释说明保存的文件时做什么用的。且不能使用中文,
会产生乱码,默认是Unicode编码,一般使用空字符串
使用步骤:
//1.创建集合对象,添加数据
创建就直接按上边的例子来了
//2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
FileWriter fw = new FileWriter("Demo\\prop.txt");
//3.使用集合中的store方法把集合中的临时数据,持久化写入到硬盘中存储
prop.store(fw,"save data");
//4.释放资源
fw.close();//如果是匿名对象的话不用关,因为使用完它自己就关了
/*②可以使用该集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用*/
void load(InputStream inStream)
void load(Reader reader)
参数:
InputStream:字节输入流,不能读取含有中文的键值对
Reader:字符输入流,可以中文