屬性集合java.util.Properties


屬性集合java.util.Properties

java.util.Properties集合 extends Hashtable<k, v> implements Map<k, v>

Properties類表示一個持久的屬性集,可以保存在流中,或者從流中加載。是唯一一個和IO流相結合的集合。Properties集合是一個雙列集合,key和value默認都是字符串

方法

方法 作用
void store(OutputStream out, String comments) 把集合的臨時數據,持久化寫到硬盤存儲
void load(Writer writer, String comments) 把硬盤的文件(鍵值對),讀取到集合中使用

store方法使用步驟

  • 創建Properties對象,添加數據
  • 創建字節輸出流/字符輸出流對象,構造方法中綁定要輸出的目的地
  • 使用properties對象的store方法,把集合的臨時數據持久化寫入到硬盤
  • 釋放資源
package cn.zhuobo.day14.aboutProperties;

import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;

public class Demo01Properties {
    public static void main(String[] args) throws IOException {
        Properties properties = new Properties();
        properties.setProperty("aaa","11");
        properties.setProperty("bbb", "22");
        properties.setProperty("ccc", "33");

// 使用字符輸出流
        FileWriter fw = new FileWriter("/home/zhuobo/Desktop/dir/prop.txt");
        properties.store(fw, "store data");
        
        // 使用字節輸出流的匿名對象
        properties.store(new FileOutputStream("/home/zhuobo/Desktop/dir/prop1.txt"), "");

        Set<String> keySet = properties.stringPropertyNames();
        for (String key : keySet) {
            System.out.println(properties.getProperty(key));
        }
        fw.close();
    }
}

鍵值對寫入文件,鍵與值之間使用空格分隔也是和等號一樣的效果,#后面的是注釋

load方法使用

  • 創建Properties對象
  • 使用Properties對象的load方法讀取保存鍵值對的文件
  • 遍歷Properties集合查看
// 創建Properties對象
Properties properties1 = new Properties();

// 使用Properties對象的load方法讀取保存鍵值對的文件
properties1.load(new FileReader("/home/zhuobo/Desktop/dir/prop1.txt"));

// 遍歷Properties集合查看
Set<String> keySet = properties.stringPropertyNames();
for (String key : keySet) {
    System.out.println(key + "=" + properties.getProperty(key));
}

該集合有些特有的處理字符串的方法:

方法 作用
Object setProperty(String key, String value) 調用Hashtable的put方法
String getProperty(String key) 相當於Map中的get方法,通過鍵獲得值
Set StringPropertyNames() 返回此屬性列表的鍵值,其中該鍵值對應值都是字符串,此方法相當於Map集合的keySet方法
package cn.zhuobo.day14.aboutProperties;

import java.util.Properties;
import java.util.Set;
// 注意使用Properties集合特有的處理字符串的方法
public class Demo01Properties {
    public static void main(String[] args) {
        Properties properties = new Properties();
        properties.setProperty("aaa","11");
        properties.setProperty("bbb", "22");
        properties.setProperty("ccc", "33");

        Set<String> keySet = properties.stringPropertyNames();
        for (String key : keySet) {
            System.out.println(properties.getProperty(key));
        }
    *


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM