80 javaIO_6 _Properties集合补充
-
Properties: 属性集合(继承HashTable,线程安全)
-
特点:
- 存储属性名和属性值
- 属性名和属性值都是字符串类型
- 没有泛型
- 和流有关
代码1:
package com.wlw.io.demo04;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
//Properties集合的使用
public class PropertiesDemo {
public static void main(String[] args) throws Exception{
//1.创建集合
Properties properties = new Properties();
//2.添加
properties.setProperty("username","zhangsan");// 调用 Hashtable 的方法 put。
properties.setProperty("age","20");
//3.遍历
System.out.println("----------------------------------------------");
//3.1 keyset
System.out.println("-----------------------3.1-----------------------");
Set<Object> keySet = properties.keySet();
for (Object o : keySet) {
String s = (String) o;
System.out.println(s+"=======>"+properties.getProperty(s));
}
//3.2 entrySet
System.out.println("-----------------------3.2-----------------------");
Set<Map.Entry<Object, Object>> entrySet = properties.entrySet();
for (Map.Entry<Object, Object> entry : entrySet) {
System.out.println(entry.getKey()+"=======>"+entry.getValue());
}
//3.3 stringPropertyNames()
System.out.println("-----------------------3.3-----------------------");
Set<String> set = properties.stringPropertyNames();
for (String s : set) {
System.out.println(s+"=======>"+properties.getProperty(s));
}
//4.和流有关的方法
//4.1 list() : 把 集合properties中的数据写入PrintWriter.txt 这个文件中
/* System.out.println("--------------------4.1 list--------------------------");
PrintWriter pw = new PrintWriter("D:\\Program Files\\IDEAworkspace\\file\\PrintWriter.txt");
properties.list(pw);
pw.close();*/
//4.2 store() 保存
//把 集合properties中的数据写入store.properties这个文件中,第二个参数是注释(String类型),也会被写入文件中
/*System.out.println("--------------------4.2 store------------------------");
FileOutputStream fos = new FileOutputStream("D:\\Program Files\\IDEAworkspace\\file\\store.properties");
properties.store(fos,"zhe shi zhu shi");
fos.close();*/
//4.3 load() 加载 从输入流中读取属性列表(键和元素对)。
//将文件中数据 读入到 properties 集合对象中
System.out.println("--------------------4.3 load() 加载------------------------");
Properties properties2 = new Properties();
FileInputStream fis = new FileInputStream("D:\\Program Files\\IDEAworkspace\\file\\store.properties");
properties2.load(fis);
fis.close();
System.out.println(properties2.toString());
}
}
/*
----------------------------------------------
-----------------------3.1-----------------------
age=======>20
username=======>zhangsan
-----------------------3.2-----------------------
age=======>20
username=======>zhangsan
-----------------------3.3-----------------------
age=======>20
username=======>zhangsan
--------------------4.3 load() 加载------------------------
{age=20, username=zhangsan}
*/