package cn.zhozuohou; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.util.Hashtable; import java.util.Iterator; import java.util.Properties; import java.util.Set; /* *一、 Properties Properties Properties?--------数据持久化储存! * *二、作用: *1.可以做到集合的数据持久存储。 *2.它是map接口的实现类, 可以使用map类的方法。 但是它没有泛型,规定建类型为字符串。 *3.在开发中, 可以连接数据库。先了解一些基本用法! * * 三、方法 * * 1.存储获取键值对。 * * a.new 对象 * b.setProperty();设置键值 * c.getProperty();获取键值 * d.增强for循环,迭代。 遍历集合。 * * 2.集合特有方法 * * load 【 把文件的键值对加载到集合中 !】 * * 1.创建集合 Properties a2=new Properties(); * 2.新建一个文本文件, 后缀修改为.Properties,写入键值对。 * 3.调用集合的load方法! 如果不调用,只会获得一个空集合! * 4.关闭流 * 5.输出 值! * * 3.store 方法 【写入键值对!】 * * 1.要使用,先创建! Properties a1=new Properties(); * 2.setProperty 输入值! * 3.字符流 在文件中写入内容! * 4.调用 properties方法! * 5.关闭流! */ public class PropertiesDemo { public static void main(String[] args) throws IOException { run01(); run02(); run03(); } //3.store 方法! private static void run03() throws IOException{ //1.要使用,先创建! Properties a1=new Properties(); //2.setProperty 输入值! a1.setProperty("name", "周旭峰"); a1.setProperty("age", "20"); a1.setProperty("email", "45645465@qq.com"); //3.字符流 在文件中写入内容! FileWriter a2=new FileWriter("d:\game\a.properties"); //4.调用 properties方法! a1.store(a2,"the reason"); //第二个参数经常忽略! //5.关闭流! a2.close(); } //2.load 把文件的键值对加载到集合中 private static void run02()throws IOException { //1.创建对象 Properties a2=new Properties(); //2.创建文本 并修改为.properties格式! FileReader a1=new FileReader("d:\game\a.properties"); //3.调用集合的load方法! 如果不调用,只会获得一个空集合! a2.load(a1); //4.关闭流 a1.close(); //5.输出 值 System.out.println(a2); } //1.存储获取键值。 private static void run01() { //1.创建对象 Properties a1=new Properties(); //2.调用对象的方法 setProperties("","");【注意!】这里是字符串的形式!设置键值! a1.setProperty("a", "1"); a1.setProperty("b", "2"); a1.setProperty("c", "3"); System.out.println(a1); String value =a1.getProperty("c"); //由 键 获取值! System.out.println(value); //增强for 循环方式 //3.获取 设置的键值 两种方式!1.for循环增强! 2.迭代方式! Set<String>set=a1.stringPropertyNames(); for (String key : set) { System.out.println(key+"="+a1.getProperty(key)); } System.out.println("==========="); //迭代的方式! 效果一样的! for (Iterator it = set.iterator(); it.hasNext();) { String key = (String) it.next(); System.out.println(key+"="+a1.getProperty(key)); //4.getProperties();获取键所对应的值! } } }