1. 程式人生 > >Java 使用Properties讀取配置檔案

Java 使用Properties讀取配置檔案

Properties類

  Properties類,可以儲存持久的屬性,通常用來讀取配置檔案或者屬性檔案,將檔案中的資料讀入properties物件中,之後,可以直接從properties中獲取配置項的值。並且這些配置只需要讀取一次。

  

 

配置檔案格式

  可以是XML格式,或者key:value格式。

 

 

測試Properties讀取XML格式配置檔案

 

 

測試Properties讀取key:value格式檔案

  在專案的根目錄有一個config.properties檔案,注意檔案字尾是".properties", 如果是IDE,開啟這個檔案,可以通過工具(tool)來設定屬性以及屬性值。

  需要注意:

  1、key與value之間使用英文的冒號":"或者"="進行分割,如果value中有":"或者"=",就需要將其轉移(加飯斜線),比如 \:,\=。

  2、配置檔案中,如果是以 "#"、"!"、";" 開始的行,會被認為是註釋。

  3、每一行儲存一個配置項,配置檔案中的空行將會被跳過(被忽略)

  下面是一個配置檔案例項

# 使用# ; ! 開始的行,被認為是註釋
# 可以使用 = 來分隔key 和 value
mysqlDriver=com.mysql.jdbc.Driver
mysqlUrl=jdbc\:mysql\://localhost\:3306/test
mysqlUser=root
mysqlPwd=123456

# 可以使用 : 來分隔key 和 value
mysqlDriver:com.mysql.jdbc.Driver
mysqlUrl:jdbc\:mysql\://localhost\:3306/test
mysqlUser:root
mysqlPwd:123456

  測試

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

public class Use_Properties {
	public static void main(String[] args) throws FileNotFoundException, IOException {
		
		// 例項化properties物件
		Properties props = new Properties();
		
		// 載入配置檔案
		// void java.util.Properties.load(InputStream inStream)
		// void java.util.Properties.load(Reader reader)
		props.load(new FileInputStream("config.properties"));
		
		// 通過String getProperty(String key)來獲取配置檔案中key對應的value
		String mysqlDriver = props.getProperty("mysqlDriver");
		System.out.println(mysqlDriver); 	// com.mysql.jdbc.Driver
		
		// 嘗試獲取配置檔案中沒有的key,得到的結果是null
		String mysqlVersion = props.getProperty("mysqlVersion");
		System.out.println(mysqlVersion);	// null
		
		// Object java.util.Properties.getOrDefault(Object key, Object defaultValue)
		// 如果key不存在時,或者key存在,而value為空,則返回defaultValue
		String demo = (String)props.getOrDefault("demo", "this is default value of demo");
		System.out.println(demo);			// this is default value of demo
		
		// 配置檔案中key對應有值,則defaultValue會被忽略
		mysqlDriver = (String)props.getOrDefault("mysqlDriver", "defaultMysqlDriver");
		System.out.println(mysqlDriver); 	// com.mysql.jdbc.Driver
	}
}