更新時間:2020-08-25 16:22:37 來源:動力節(jié)點 瀏覽5741次
1.Properties類與Properties配置文件
Properties類繼承自Hashtable類并且實現(xiàn)了Map接口,也是使用一種鍵值對的形式來保存屬性集。不過Properties有特殊的地方,就是它的鍵和值都是字符串類型。
2.Properties中的主要方法
(1)load(InputStream inStream)
這個方法可以從.properties屬性文件對應(yīng)的文件輸入流中,加載屬性列表到Properties類對象。如下面的代碼:
Properties?pro?=?new?Properties();
FileInputStream?in?=?new?FileInputStream("a.properties");
pro.load(in);
in.close();
(2)store(OutputStream out,String comments)
這個方法將Properties類對象的屬性列表保存到輸出流中。如下面的代碼:
FileOutputStream?oFile?=?new?FileOutputStream(file,?"a.properties");
pro.store(oFile,?"Comment");
oFile.close();
如果comments不為空,保存后的屬性文件第一行會是#comments,表示注釋信息;如果為空則沒有注釋信息。
注釋信息后面是屬性文件的當(dāng)前保存時間信息。
(3)getProperty/setProperty
這兩個方法是分別是獲取和設(shè)置屬性信息。
3.代碼實例
屬性文件a.properties如下:
name=root
pass=liu
key=value
讀取a.properties屬性列表,與生成屬性文件b.properties。代碼如下:
import?java.io.BufferedInputStream;
import?java.io.FileInputStream;
import?java.io.FileOutputStream;
import?java.io.InputStream;
import?java.util.Iterator;
import?java.util.Properties;
public?class?PropertyTest?{
????public?static?void?main(String[]?args)?{
????????Properties?prop?=?new?Properties();
????????try{
????????????//讀取屬性文件a.properties
????????????InputStream?in?=?new?BufferedInputStream?(new?FileInputStream("a.properties"));
????????????prop.load(in);?????///加載屬性列表
????????????Iterator?it=prop.stringPropertyNames().iterator();
????????????while(it.hasNext()){
????????????????String?key=it.next();
????????????????System.out.println(key+":"+prop.getProperty(key));
????????????}
????????????in.close();
????????????///保存屬性到b.properties文件
????????????FileOutputStream?oFile?=?new?FileOutputStream("b.properties",?true);//true表示追加打開
????????????prop.setProperty("phone",?"10086");
????????????prop.store(oFile,?"The?New?properties?file");
????????????oFile.close();
????????}
????????catch(Exception?e){
????????????System.out.println(e);
????????}
????}
}
以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“Java讀寫Properties配置文件”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀