51-13Properties集合【重点】

68 阅读2分钟
/*
    java.util.Properties集合是Hashtable的子类,双列集合
        主要使用的是与String相关的方法

    常用方法:
       getProperties(): 获取系统相关的属性名及属性值
       getProperty(String key): 根据属性名获取属性值
       setProperty(String k,String v): 保存一个键值对(属性名=属性值) 
       Set- stringPropertyNames(): 获取所有属性值对应的Set集合
    load(InputStream inStream): 从字节输入流中读取键值对。
            参数:  InputStream inStream: 抽象父类,传递子类FileInputStream对象
          load(Reader reader): 从字符输入流中读取键值对。
            参数:   Reader reader: 抽象父类,传递子类FileReader对象

     使用步骤:
        1.load方法加载的文件,要求扩展名(配置信息).properties,一般存储到src根目录下,
            数据存储格式: 属性名=属性值,注释: 用# 
         store(OutputStream outStream,String comments):
            参数: OutputStream outStream: 抽象父类,传递子类FileOutputStream对象
                  String comments: 给properties文件的说明信息 可以直接写为null
   store(Writer writer,String comments):  
   参数:   Writer writer: 抽象父类,传递子类FileWriter对象
          String comments: 给properties文件的说明信息 可以直接写为null  
          把Properties集合对象中的内容存储到文件中  props.store(os,null);   
   */
public class Demo01Properties {
    public static void main(String[] args) {
        //System类调用静态方法,获取Properties对象
        Properties props = System.getProperties();
        //增强for遍历
        for (String propertyName : props.stringPropertyNames()) {
            String propertyValue = props.getProperty(propertyName);
            System.out.println(propertyName+"::"+propertyValue);
        }
    }
    //Properties集合的基本使用
    private static void method01() {
        Properties props = new Properties();
        //添加键值对
        props.setProperty("name","zhangsan");
        props.setProperty("age","28");
        props.setProperty("gender","nan");

        //遍历
        Set<String> propertyNames = props.stringPropertyNames();
        for (String propertyName : propertyNames) {
            String propertyValue = props.getProperty(propertyName);
            System.out.println(propertyName+"::"+propertyValue);
        }
    }
}
public class Demo02Properties {
    public static void main(String[] args) throws IOException {
        //2.创建Properties集合对象
        Properties props = new Properties();

        //3.创建InputStream/Reader的子类对象,绑定源文件
        InputStream is = new FileInputStream("day13_sw\\src\\config.properties");

        //4.Properties集合对象调用load方法传递InputStream/Reader的子类对象,
        //把文件内容以键值对的方式加载到Properties集合对象中
        props.load(is);

        //5.遍历集合
        Set<String> propertyNames = props.stringPropertyNames();

        for (String propertyName : propertyNames) {
            String propertyValue = props.getProperty(propertyName);
            System.out.println(propertyName+"::::"+propertyValue);
        }
    }
}