使用Properties集合便利存储数据
java.util.Properties集合extends Hashtable<Object,Object> implements Map<k,v>
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。
可以使用Properties集合中的放啊store,把集合中的临时数据,持久化到硬盘中存储
可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用
属性列表中每个键及其对应值都是一个字符串。
properties集合是一个双列集合,key和value默认都是字符串
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;
public class Demo5 {
public static void main(String[] args) throws IOException {
show03();
}
/*
* 可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用
* void load(InputStream inStream)
从输入流中读取属性列表(键和元素对)。
void load(Reader reader)
按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
* 注意:
* 存储键值对的文件中,键与值之间的连接符可以是"="也可以是空格
* 文件中可以使用#注释,被注释的不会被读取
* 存储键值对的文件中键与值的类型默认字符串,不用加双引号
* */
private static void show03() throws IOException {
Properties prop = new Properties();
prop.load(new FileReader("b.txt"));
Set<String> set = prop.stringPropertyNames();
for (String key : set) {
String value = prop.getProperty(key);
System.out.println(key+"="+value);
}
}
/*
* 可以使用Properties集合中的放啊store,把集合中的临时数据,持久化到硬盘中存储
* void store(OutputStream out, String comments) 以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。
* void store(Writer writer, String comments) 以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。
* 参数:
* OutputStream out 字节输出流不能写中文
* Writer writer 字符输出流,可以写中文
* String comments 注释用来解释文件是用来干什么的,不能使用中文
* */
private static void show02() throws IOException {
Properties prop = new Properties();
prop.setProperty("迪丽热巴","172");
prop.setProperty("于文文","168");
prop.setProperty("古力娜扎","165");
FileWriter fw = new FileWriter("b.txt");
prop.store(fw,"");
fw.close();
}
/*
* 使用properties集合存储数据,遍历取出集合中的数据
* properties集合是一个双列集合,key和value默认都是字符串
* properties集合有一些操作字符串的特有方法
* Object setProperty(String key, String value) 调用 Hashtable 的方法 put。
* String getProperty(String key) 用指定的键在此属性列表中搜索属性。
* Set<String> stringPropertyNames() 返回此属性列表中的键集,其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。
* */
private static void show01() {
Properties prop = new Properties();
prop.setProperty("迪丽热巴","172");
prop.setProperty("于文文","168");
prop.setProperty("古力娜扎","165");
Set<String> set = prop.stringPropertyNames();
for (String key : set) {
String value = prop.getProperty(key);
System.out.println(key+"="+value);
}
}
}