Properties類與.properties文件: Properties類繼承自Hashtable類並且實現了Map介面,也是使用一種鍵值對的形式來保存屬性集的類,不過Properties有特殊的地方,就是它的鍵和值都是字元串類型。而.properties文件是由“鍵=值” ...
Properties類與.properties文件:
Properties類繼承自Hashtable類並且實現了Map介面,也是使用一種鍵值對的形式來保存屬性集的類,不過Properties有特殊的地方,就是它的鍵和值都是字元串類型。而.properties文件是由“鍵=值”的形式的數據項集合所構成的一個文件。需要註意的一點是.properties文件的數據項的鍵與值的信息顯示的均是字元的編碼的形式,在eclipse環境中,properties文件的預設編碼格式是“ISO-8859-1”,properties文件的註釋是採用"#"表示的
Properties類的主要方法:
getProperty/setProperty: 這兩個方法是分別是獲取和設置屬性信息。
load(InputStream inStream): 從輸入流中讀取屬性列表(鍵和元值素對)。並將其鍵與值的信息存入Properties對象中。
示例代碼如下:
test.properties文件:
c=\u680B\u62D0
示例代碼:
package other;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
/**
* 用於演示java中對於properties文件的讀寫
* @author 學徒
*
*/
public class PropertiesReadAndWrite
{
public static void main(String[] args) throws IOException
{
//演示load方法
File file=new File("test.properties");
Properties properties=new Properties();
FileInputStream in=new FileInputStream(file);
properties.load(in);
in.close();
System.out.println(properties.getProperty("c"));
}
}
運行結果:
棟拐
store(OutputStream out, String comments): 將此 Properties表中的屬性列表(鍵和值元素對)寫入到輸出流。如果comments不為空,保存後的屬性文件第一行會是#comments,表示註釋信息;如果為空則沒有註釋信息。註釋信息後面是屬性文件的當前保存時間信息。
示例代碼如下:
test.properties文件:
c=\u680B\u62D0
package other;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
/**
* 用於演示java中對於properties文件的讀寫
* @author 學徒
*
*/
public class PropertiesReadAndWrite
{
public static void main(String[] args) throws IOException
{
//用於演示store方法
File file=new File("test.properties");
FileOutputStream out=new FileOutputStream(file,true);//true表示追加信息到文件的
out.write("\n".getBytes());//為了用於將其與原有的信息進行劃分開
Properties properties=new Properties();
properties.setProperty("a", "棟拐他老婆");
properties.store(out, "~~哈哈哈,這是備註~~");
out.close();
System.out.println("OK!");
}
}
運行結果:
OK!
代碼執行後properties文件:
c=\u680B\u62D0
#~~\u54C8\u54C8\u54C8\uFF0C\u8FD9\u662F\u5907\u6CE8~~
#Mon Dec 11 17:57:49 CST 2017
a=\u680B\u62D0\u4ED6\u8001\u5A46