Properties集合:
特点:
1,该集合中的键和值都是字符串类型。
2,集合中的数据可以保存到流中,或者从流获取。
通常该集合用于操作以键值对形式存在的配置文件
Map
|--Hashtable
|--Properties:
Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项。相反,应该使用 setProperty 方法。
常用方法:
String getProperty(String key)
Object setProperty(String key, String value)
void list(PrintStream out)
将属性列表输出到指定的输出流。
void list(PrintWriter out)
将属性列表输出到指定的输出流。
void load(InputStream inStream)
从输入流中读取属性列表(键和元素对)。
void load(Reader reader)
按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
void store(OutputStream out, String comments)
将此 Properties 表中的属性列表(键和元素对)写入输出流。
void store(Writer writer, String comments)
将此 Properties 表中的属性列表(键和元素对)写入输出字符
Set<String> stringPropertyNames()
返回此属性列表中的键集,其中该键及其对应值是字符串
使用举例如下:
//取出所有元素。
Set<String> names = prop.stringPropertyNames();
for(String name : names){
String value = prop.getProperty(name);
System.out.println(name+":"+value);
}
//对已有的配置文件中的信息进行修改。
读取这个文件。
并将这个文件中的键值数据存储到集合中。
在通过集合对数据进行修改。
在通过流将修改后的数据存储到文件中。
public static void test() throws IOException{
//读取这个文件。
File file = new File("info.txt");
if(!file.exists()){
file.createNewFile();
}
FileReader fr = new FileReader(file);
//创建集合存储配置信息。
Properties prop = new Properties();
//将流中信息存储到集合中。
prop.load(fr);
//修改元素。
prop.setProperty("wangwu", "16");
FileWriter fw = new FileWriter(file);
//将集合中数据存储到文件中,使用store方法。
prop.store(fw,"");
fw.close();
fr.close();
}