Properties集合類

Properties是Hashtable類的子類(這里注意,Hashtable的t是小寫,這個類是JDK1.0就有了的,而java的命名規范是從2.0才開始的),是唯一一個能直接和IO流結合使用的集合類。該集合類可以直接從文件讀取數據到集合中,也可以直接把集合中的數據寫入到文件中。一般適用于操作配置文件。使用它時先要import java.util.Properties;。

配置文件key和value之間用冒號[:]和等于號[=]都是可以的.
使用load方法讀取之后直接映射成map

主要有如下方法:
load(); //讀取
store(); //寫
getProperty(); //根據鍵獲取值
setProperty(); //修改對應鍵的值

The Properties class represents a persistent set of properties. The Properties can be saved to a stream or loaded from a stream. Each key and its corresponding value in the property list is a string.

鍵值對只能保存字符串

兩個構造方法:
Properties()
Creates an empty property list with no default values.
Properties(Properties defaults)
Creates an empty property list with the specified defaults.

PropertiesDemo.java
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Properties;

public class PropertiesDemo {

    public static void main(String[] args) throws Exception {
        //創建Properties類的對象
        Properties pp = new Properties();
        
        //從文件中讀取數據
        pp.load(new FileInputStream("config.properties"));
        
        //打印pp對象
        System.out.println(pp);
        
        //根據鍵獲取值
        Object obj = pp.get("name");
        System.out.println(obj);
        
        String name = pp.getProperty("name");
        String call = pp.getProperty("call");
        String qq = pp.getProperty("qq");
        
        System.out.println("name " + name);
        System.out.println("call " + call);
        System.out.println("qq " + qq);
        
        //修改元素(鍵值對)的值
        pp.setProperty("name", "anxiaohong");
        pp.setProperty("qq", "123456789");
        
        //修改后的pp
        System.out.println(pp);
        
        //把修改后的文件寫入到文件當中,沒有這個文件的話會新建一個文件,第二個參數是一個string作為描述
        //寫完的文件頭會加一個時間,時間上邊是描述的字符串,如果第二個參數是null,就只加一個時間
        //以#號開頭,注釋
        pp.store(new FileOutputStream("abc.txt"), "hello");

        //對map進行遍歷
        Set<Object> set = pp.keySet();
        
        for(Object o: set) {
            System.out.println(o+"---"+pp.getProperty(o.toString()));
        }
    }
}

config.properties
name = anhong
call = 123456
qq : 456789

abc.txt
#hello
#Fri Nov 17 20:32:48 CST 2017
qq=123456789
name=anxiaohong
call=123456

參考
java對properties配置文件的讀寫操作
properties配置文件的簡單使用

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容