Java IO 与 集合
集合--写数据-->文件
文件--读数据-->集合
HashTable父类 -- Properties类 该类继承父类的同时 实现了接口Map集合的方法
Map集合 的 put() 方法 get()方法 ,遍历集合时 常用的keySet() 方法
Properties集合 “进化”出 功能相似的特有方法:
setProperty(String key, String value) // 添加集合中的键值对元素的方法
getProperty(String key) //依靠键 获取值的方法
stringPropertyNames() //类似于Map接口的方法keySet 将集合中的键存储到Set集合
注意 Properties 这个集合 不支持泛型 <K V> 都是固定的 String类型
import java.util.Properties; import java.util.Set; Properties pro = new Properties(); pro.setProperty("a", "1"); pro.setProperty("b", "2"); pro.setProperty("c", "3"); System.out.println(pro);//打印集合 String value = pro.getProperty("c");//依靠键 获得对应的值 System.out.println(value); //遍历集合 Set<String> set = pro.stringPropertyNames(); for(String key : set){ System.out.println(key+"—"+pro.getProperty(key)); }
由于Properites特有的方法load() store() 使其可借助与IO字符流的结合 实现持久化存储 ,因此Properites集合被称为 可持久化的属性集
* Properties集合的特有方法store -- 将集合中的键值对,写回文件中保存
* store(OutputStream out)
* store(Writer w)
* Properties集合特有方法 load --读取文件中的键值对,保存到集合
* load(InputStream in)
* load(Reader r)
import java.io.FileWriter; import java.io.IOException; import java.util.Properties; Properties pro = new Properties(); pro.setProperty("name", "zhangsan"); pro.setProperty("age", "31"); pro.setProperty("email", "test@163.com"); FileWriter fw = new FileWriter("c:\\pro.properties"); //键值对,存回文件,使用集合的方法store传递字符输出流 pro.store(fw, ""); fw.close();
import java.io.FileReader; import java.io.IOException; import java.util.Properties; Properties pro = new Properties(); FileReader fr = new FileReader("c:\\pro.properties"); //调用集合的方法load,传递字符输入流 pro.load(fr); fr.close(); System.out.println(pro);