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
	}
}

  

猜你喜欢

转载自www.cnblogs.com/-beyond/p/10073704.html