Java:Properties文件操作

版权声明:转载请注明链接 https://blog.csdn.net/weixin_38569499/article/details/86583592

    Java定义了Java.util.Properties类用于properties文件的操作。Properties类继承了HashTable类。

1、加载properties文件内容

1、从输入流中加载:

方法:

   synchronized void load(InputStream inStream):从输入流中加载文件的内容,加载到Properties实例中。

输入流的来源:

    1)使用类加载器获取Resource目录中或者指定目录中文件的流:

InputStream in = getClass().getResourceAsStream("fileName.properties");

    如果输入相对路径,类加载器会直接从resource目录中去查找文件。

    2)或者直接使用IO:

InputStream in = new BufferedInputStream(new FileInputStream(fileName));

    这里使用了缓冲流加快IO速率,也可以不使用外层的缓冲了,直接用内层的FileInputStream。

2、从Reader中加载:

方法:

   synchronized void load(Reader reader):从Reader中加载文件的内容。

字符输入流Reader的来源:

Reader reader = new FileReader("fileName.properties");

2、内存中的属性列表(Properties的实例中)的增删改查:

0、重要属性:

    protected Properties defaults:默认属性列表是在构造器中传入的Properties实例,用来当在属性列表中找不到key值的时候从默认属性列表中获取缺省值。

    官方介绍:A property list that contains default values for any keys not found in this property list.

1、属性的增加和修改:

   synchronized Object setProperty(String key, String value):如果Properties实例中已经包含这个key,那么就更新;如果不包含,就添加。

2、属性的查询:

   String getProperty(String key):查询key对应的value,如果没有则从默认属性列表defaults中查询,仍然没有则返回null。

   String getProperty(String key, String defaultValue):查询key对应的value,如果没有则从默认属性列表defaults中查询,仍然没有则返回defaultValue。

3、属性的删除:

   synchronized V remove(Object key):方法用来从属性列表中删除key对应的属性。严格来说,这不是Properties中定义的方法,而是在它的继承链中,由Map定义了抽象方法、由HashTable实现的方法,在Properties中并未复写该方法。

    synchronized void clear():清空所有键值对。严格来说,这不是Properties中定义的方法,而是在它的继承链中,由Map定义了抽象方法、由HashTable实现的方法,在Properties中并未复写该方法。

4、属性的key值集合:

    Set<String> stringPropertyNames():返回属性列表的key值的String集合,包括默认属性列表defaults中主属性列表中没有的key值。忽略key或者value非String类型属性。

    Enumeration<?> propertyNames():返回属性列表的key值的枚举集合,包括默认属性列表defaults中的key值。

3、存储到文件

    void store(Writer writer, String comments):将属性列表及描述comments加载到Writer中,comments是以注释的形式存储的。

    void store(OutputStream out, String comments):将属性列表及描述comments加载到输出流中,comments是以注释的形式存储的。

    void storeToXML(OutputStream os, String comment):将属性列表转换为XML的格式,并和描述comment一起存储到输出流。

    void storeToXML(OutputStream os, String comment, String encoding):将属性列表转换为XML的格式,并和描述comment一起使用指定的编码方式存储到输出流。

猜你喜欢

转载自blog.csdn.net/weixin_38569499/article/details/86583592
今日推荐