Properties类:集合与IO流(硬盘文件)的交互,(Map、Hashtable子类,没有泛型,键值默认都是String类型)。
可以用于读取配置文件(IO流)(键值对表示。"="表示键值对,一行表示一对,"#"表示注释)。
通过类加载器,加载项目bin目录下的文件流:https://blog.csdn.net/houyanhua1/article/details/80773793
Demo.java:
package cn.xxx.demo;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;
/*
* 集合对象Properties类,继承Hashtable,实现Map接口
* 可以和IO流对象结合使用,实现数据的持久存储
*/
public class Demo {
public static void main(String[] args)throws IOException {
function_2();
}
/*
* Properties集合的特有方法store
* store(OutputStream out) // 将集合中的内容持久化(写入)到硬盘(输出流)中。 用等号"="表示键值对,不要乱写空格,一行一对。开头"#"表示注释。
* store(Writer w)
*/
public static void function_2()throws IOException{
Properties pro = new Properties();
pro.setProperty("name", "zhangsan"); // 集合中添加/修改键值对。 不建议直接使用父类接口Map中的put函数。
pro.setProperty("age", "31");
pro.setProperty("email", "123456789@163.com");
FileWriter fw = new FileWriter("c:\\pro.properties");
//键值对,存回文件,使用集合的方法store传递字符输出流
pro.store(fw, ""); // 将集合中的内容持久化(写入)到硬盘(输出流)中。会自动flush刷新 第二个参数表示备注(以注释形式存在,不要用中文)
fw.close();
}
/*
* Properties集合特有方法 load
* load(InputStream in) // 将硬盘(输入流)中的键值对读取到集合中。
* load(Reader r) // 常用于读取配置文件。
*/
public static void function_1()throws IOException{
Properties pro = new Properties();
FileReader fr = new FileReader("c:\\pro.properties");
pro.load(fr); // 将硬盘(输入流)中的键值对读取到集合中。
fr.close();
System.out.println(pro);
}
/*
* 使用Properties集合,存储键值对 (没有泛型,键值默认都是String类型)
* setProperty等同与Map接口中的put 不建议直接使用父类接口Map中的put函数。
* setProperty(String key, String value)
* getProperty(String key) 通过键获取值, 等同与Map接口中的get 不建议直接使用父类接口Map中的get函数。
*/
public static void function(){
Properties pro = new Properties();
pro.setProperty("a", "1"); // 集合中添加/修改键值对。 不建议直接使用父类接口Map中的put函数。
pro.setProperty("b", "2");
pro.setProperty("c", "3");
System.out.println(pro);
String value = pro.getProperty("c"); // 获取键的对应值。 不建议直接使用父类接口Map中的get函数。
System.out.println(value);
//方法stringPropertyNames,将集合中的键存储到Set集合,类似于Map接口的方法keySet (可用于遍历)
Set<String> set = pro.stringPropertyNames();
for(String key : set){ // 通过遍历set集合实现对Properties集合的遍历
System.out.println(key+"..."+pro.getProperty(key));
}
}
}