美文网首页
从屌丝到架构师的飞越(IO流篇)-Properties

从屌丝到架构师的飞越(IO流篇)-Properties

作者: 走着别浪 | 来源:发表于2019-07-11 09:43 被阅读0次

    一.介绍

    Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。像Python支持的配置文件是.ini文件,同样,它也有自己读取配置文件的类ConfigParse,方便程序员或用户通过该类的方法来修改.ini配置文件。在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式,文本注释信息可以用"#"来注释。

    二.知识点介绍

    1、概念

    2、使用方法举例

    3、将配置文件中的数据存储到文件中

    4、读取配置文件中的数据,同时更新数据,并保存

    三.上课视频对应说明文档

    1、概念及常用方法

    Properties是双列集合的一种,是Hashtable的子类。属性集:key---value

    该类没有泛型,通过setProperty / getProperty/ stringPropertyNames完成针对字符串的操作。

    它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。包含IO相关方法:

    (1)load(InputStream)  把指定流所对应的文件中的数据,读取出来,保存到Properties集合中

    (2)load(Reader) 

    (3)store(OutputStream,commonts)把集合中的数据,保存到指定的流所对应的文件中,参数commonts代表对描述信息

    (4)store(Writer,comments);

    注意:使用字符流FileReader就可以完成文件中文的读取操作了

    2、使用方法举例

    代码示例:

    /*

    * Properties集合,它是唯一一个能与IO流交互的集合

    */

    public class PropertiesDemo01 {

    public static void main(String[] args) {

    //创建集合对象

    Properties prop = new Properties();

    //添加元素到集合

    //prop.put(key, value);  //setProperty底层调用put方法

    prop.setProperty("周迅", "张学友");

    prop.setProperty("李小璐", "贾乃亮");

    prop.setProperty("杨幂", "刘恺威");

    //System.out.println(prop);//测试的使用

    //遍历集合

    Set<String> keys = prop.stringPropertyNames();

    for (String key : keys) {

    //通过键 找值

    //prop.get(key)

    String value = prop.getProperty(key);

    System.out.println(key+"==" +value);

    }

    }

    }

    3、将配置文件中的数据存储到文件中

    代码示例:

    /**

    * 需求:使用Properties集合,完成把集合内容存储到IO流所对应文件中的操作

    *

    * 分析:

    * 1,创建Properties集合

    * 2,添加元素到集合

    * 3,创建流

    * 4,通过store方法把集合中的数据存储到流所对应的文件中

    * 5,关闭流

    */

    public class PropertiesDemo02 {

    public static void main(String[] args) throws IOException {

    //1,创建Properties集合

    Properties prop = new Properties();

    //2,添加元素到集合

    prop.setProperty("周迅", "张学友");

    prop.setProperty("李小璐", "贾乃亮");

    prop.setProperty("杨幂", "刘恺威");

    //3,创建流

    FileWriter out = new FileWriter("prop.properties");

    //4,把集合中的数据存储到流所对应的文件中

    prop.store(out, "save data");

    //5,关闭流

    out.close();

    }

    }

    4、读取配置文件中的数据,同时更新数据,并保存

    /*

    * 需求:从属性集文件prop.properties 中取出数据,保存到集合中

    * 分析:

    * 1,创建集合

    * 2,创建流对象

    * 3,把流所对应文件中的数据 读取到集合中

    *  load(InputStream)  把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中

    load(Reader) 

    * 4,关闭流

    * 5,显示集合中的数据

    */

    public class PropertiesDemo03 {

    public static void main(String[] args) throws IOException {

    //1,创建集合

    Properties prop = new Properties();

    //2,创建流对象

    FileInputStream in = new FileInputStream("prop.properties");

    //FileReader in = new FileReader("prop.properties");

    //3,把流所对应文件中的数据 读取到集合中

    prop.load(in);

    //4,关闭流

    in.close();

    //5,显示集合中的数据

    System.out.println(prop);

    }

    }

    相关文章

      网友评论

          本文标题:从屌丝到架构师的飞越(IO流篇)-Properties

          本文链接:https://www.haomeiwen.com/subject/flovhctx.html