111、Properties属性集

你说的曾经没有我的故事 提交于 2020-03-17 08:07:05

java.util.Properties结合 extends Hashtable<k,v> implements Map<k,v>
一、简介
    java.util.Properties ` 继承于` Hashtable` ,来表示一个持久的属性集。Properties可保存在流中或从流中加载。它使用键值结构存储数据,每个键及其对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时,`System.getProperties` 方法就是返回一个`Properties`对象。
   
    属性列表中每个键及其对应的值都是一个字符串。
        Properties集合是一个双列结合,key和value默认都是字符串
二、构造方法
    public Properties()` :创建一个空的属性列表。

三、基本的存储方法

    public Object setProperty(String key, String value): 
        保存一对属性。  
    public String getProperty(String key) :
        使用此属性列表中指定的键搜索属性值。
    public Set<String> stringPropertyNames() :
        所有键的名称的集合。
四、与流相关的方法
 1、Properties集合是一个唯一和IO流相结合的集合。
        可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储。
        可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读到集合中使用
    public void load(InputStream inStream): 
五、注意:
    文本中的数据,必须是键值对形式,可以使用空格、等号、冒号等符号分隔。

import java.io.*;
import java.util.Properties;
import java.util.Set;

/*
    java.util.Properties结合 extends Hashtable<k,v> implements Map<k,v>
    Properties类表示了一个持久的属性集。Properties可保存在流中或从流中加载。
    Properties集合是一个唯一和IO流相结合的集合
        可以使用Properties结合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储。
        可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读到集合中使用
    属性列表中每隔键及其对应的值都是一个字符串。
        Properties集合是一个双列结合,key和value默认都是字符串
 */
public class Demo01Priperies {
    public static void main(String[] args) throws IOException {
        show01();//将数据写入到集合

        getDateFromHard();//从硬盘中读取数据
    }

    /*
    从硬盘中读取数据
    可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用
    void load(InputStream inStream)
    void load(Reader reader)
    使用步骤:
        1、创建Properties集合
        2、使用集合对象中的方法load读取保存的键值对文件
        3、遍历结合
      注意:
        1、存储键值对文件中,键和值默认的链接符号可以使用=、空格(其它符号)
        2、可以使用+进行朱姐,被注释的键值对不再会被读取
        3、键与值默认都是字符串,不用再加引号
     */
    private static void getDateFromHard() throws IOException {
        Properties pt = new Properties();
        FileReader fr = new FileReader("abc.txt");

        pt.load(fr);
        Set<String> set = pt.stringPropertyNames();
        for (String s : set) {
            String value = pt.getProperty(s);
            System.out.println(s+"="+value);
        }
    }

    /*
    Properties集合有一些操作字符串的特有方法
        Object setProperty(String key, String value)调用Hashtable的方法put.
        String getProperty(String key) 通过key找到value值,此方法相当于Map结合中的get(key)方法
        Set<String> stringPropertyNames()返回此属性列表中的链集,其中该键及其对应值时字符串,此方法
        相当于Map结合中的keySet方法

        void store(OutputStream out, String comments)
        void store(Writer writer, String comments)
        参数:
            outputStream out:字节输出流,不能写入中文
            Writer writer:字符输出流,可以写中文
            String comments:注释,用来解释文件中存放的是什么,不能使用中文,否则会乱码,一般使用空字符串
        步骤:
            1、创建Properties集合对象。
            2、创建字节输出/字符输出流。
            3.使用Properties集合中的方法store,把集合中的临时数据,永久性写入到硬盘
            4、释放资源
     */
    private static void show01() throws IOException {
        //1、创建Properties结合对象。
        Properties pt = new Properties();
        pt.setProperty("古力娜扎","21");
        pt.setProperty("迪丽热巴","22");
        pt.setProperty("韩梅梅","24");
        //2、创建字节输出/字符输出流。
        FileWriter fw = new FileWriter("abc.txt");
        //3.使用Properties集合中的方法store,把集合中的临时数据,永久性写入到硬盘
        pt.store(fw, "test");
        //释放资源
        fw.close();

    }

}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!