Java Properties集合基礎解析

Java Properties集合基礎解析

本期學習的properties集合是項目中經常用到的操作

什麼是Properties集合?

java.util.Properties集合繼承於Hashtable,來表示一個持久的屬性集,他使用鍵值結構存儲數據,每個鍵及其對應的值都是一個字元串,該類被許多java類使用,比如獲取系統屬性時,System.getProperties,方法就是返回一個Properties對象

properties集合是唯一一個與IO流相結合的集合
可以使用Properties集合中的方法store把集合中的數據持久化
可以使用Properties集合中的load方法,把硬碟中保存的文件(鍵值對)存儲到集合中使用,這在項目中 用於讀取配置文件經常使用到

屬性表中每個鍵及其對應值都是一個字元串
Properties集合是一個雙列集合(雙列集合是每個元素由鍵和值兩部分組成,由鍵可以找到值,鍵必須是唯一的,值可以重複)

構造方法

public properties() 創建一個空的屬性列表

基本的存儲方法:
public Object setProperty(String key,String value) :保存一對屬性
public String setProperties(String key) :使用此屬性列表中指定的鍵搜索屬性值
public Set stringPropertNames() 獲取所有名稱的集合

public class Main {
    public static void main(String[] args) {
        Properties properties = new Properties();
        //存入鍵值對
        properties.setProperty("one","1");
        properties.setProperty("two","2");
        //拿出所有鍵
        Set<String> strings = properties.stringPropertyNames();
        //遍歷鍵
        for (String string : strings) {
            //通過鍵獲取值
            String property = properties.getProperty(string);
            //輸出
            System.out.println(string+":"+property);
        }
    }
}

結果
在這裡插入圖片描述

與流相關的方法

store ( OutputStream out, String comments)

store ( OutputStream out, String comments) : 以適合使用 load 方法載入到 Properties 表中的格式,將此 Properties 表中的屬性列表(鍵和元素對)寫入輸出流。與 load 方法相反,該方法將鍵 – 值對寫入到指定的文件中去。

參數中使用了位元組輸入流,通過流對象,可以關聯到某文件上,這樣就可以能夠載入文本中的數據了,文本數據格式:

public class Main {
    public static void main(String[] args) throws IOException {
        Properties properties = new Properties();
        //存入鍵值對
        properties.setProperty("one","1");
        properties.setProperty("two","2");
        //載入文本中資訊到屬性集
        properties.store(new FileWriter("c.text"),"savedate");
        //拿出所有鍵
        Set<String> strings = properties.stringPropertyNames();
    }
}

結果

在這裡插入圖片描述

public void load(InputStream inStream)

public void load(InputStream inStream) : 從位元組輸入流中讀取鍵值對。

注意:
1.存儲鍵值對的文件中,鍵與值默認的鏈接符號可以使用=,空格等其他符號
2.存儲鍵值對的文件中,可以使用「#」進行注釋,被注釋的鍵值對默認不會被讀取
3.存儲鍵值對的文件中,鍵與值都是字元串,不要加引號

public class Main {
    public static void main(String[] args) throws IOException {
        Properties properties = new Properties();
        properties.load(new FileReader("c.text"));
        //拿出所有鍵
        Set<String> strings = properties.stringPropertyNames();
        for (String string : strings) {
            System.out.println(string+":"+properties.getProperty(string));
        }
    }
}

結果

在這裡插入圖片描述

以上就是Properties集合的一些基礎知識,如有錯誤請各位批評指正,喜歡我的文章可以點贊收藏,我會不定期更新文章,各位道友也可以關注我

在這裡插入圖片描述