Properties

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();获取键所对应的值!
            
        }
    }
    
}
原文地址:https://www.cnblogs.com/ZXF6/p/10604295.html