属性集[Properies]
java.util.properties 类继承与Hashtable,用来表示一个持久的属性集.它使用的键值结构存储数据,每个键及其对应的值都是一个字符串.
-
public Properties():创建一个空的属性集列表
共性的api方法
-
public Object setProperty(String key,String value):保存一对属性.
-
public String getProperty(String key):使用此属性列表中的指定的键来搜索对应的值.
-
public Set<String> stringPropertyNames():获取所有键的名称并封装Set集合中.
/创建属性集对象
Properties pro = new Properties();
//添加键值对元素
pro.setProperty("name", "abc.txt");
pro.setProperty("size", "12000");
pro.setProperty("destination", "D\abc.txt");
pro.put("date","小孙");
System.out.println(pro);
//通过键找值来获取值
Object date = pro.get("date");
System.out.println(date);
String size = pro.getProperty("size");
System.out.println(size);
//遍历该属性集
//public Set<String> stringPropertyNames():获取所有键的名称并封装Set集合中.
for (String st : pro.stringPropertyNames()) {
System.out.println(pro.getProperty(st));
}
与流相关的方法
-
public void load(inputSream input):从字节输入流中读取
参数中使用了字节输入流,通过流对象,可以关联到某个文件上,这样就可以加载文件中的数据的格式:
"key=value"
例如:
date=小孙
size=1200
name=abc.txt
可以使用Properties集合中的load方法对输入流进行操作,把硬盘文件中的数据读取出来,保存到集合 properties当中使用 void load(InputStream input):从字节输入流中读取文件中的键值对 void load(Writer read):从字符输入流中读取文件中的键值对 参数: inputStream input:字节输入流,不能读取含有中文的键值对 Reader reader:字符输入流,可以读取含有中文的键值对 使用步骤: 1.创建Properties集合 2.使用Properties集合中的方法load读取保存在输入流中的数据 3.遍历properties集合
注意:
1.在存储键值对的文件中,键与值默认的连接符号是"=",可以使用空格(其他符号)
2.存储键值对的文件中,可以使用#进行注释,被注释的键值对不会被读取到.
FileInputStream f = new FileInputStream("day29_IO\abc.txt");
//1.创建Properties集合
Properties pro = new Properties();
//2.使用Properties集合中的方法load读取保存在输入流中的数据
pro.load(f);
//3.遍历Properties集合
for (String st : pro.stringPropertyNames()) {
System.out.println(pro.getProperty(st));
}
//12000
-
public void store(OutputStream out,String comments):把集合当中数据写入字节输出流中
可以使用Properties集合中的方法store,把集合当中的临时数据,持久化写入到硬盘文件中保存.
//创建Properties集合对象.添加数据
Properties pro = new Properties();
pro.setProperty("四大名著1", "红楼梦");
pro.setProperty("四大名著2", "西游记");
pro.setProperty("四大名著3", "水浒传");
pro.setProperty("四大名著4", "三国演义");
// 2.创建字节输出流/字节输出流对象,构造方法中绑定需要写入数据的目的地
FileWriter fw = new FileWriter("day29_IO\avcd.txt");
pro.store(fw,"si da ming zhu");//注释不能用中文会乱码
//释放资源
fw.close();