Properties类

  Properties类,是一个工具类,包含在java.util包中。

  功能:可以保存持久的属性,通常用来读取配置文件或者属性文件,将文件中的数据读入properties对象中,之后,可以直接从properties中获取配置项的值。并且这些配置只需要读取一次。

  

配置文件格式

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

测试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 // String getProperty(Object key, String defaultValue)
// 如果key不存在时,或者key存在,而value为空,则返回defaultValue
String demo = props.getProperty("demo", "this is default value of demo");
System.out.println(demo); // this is default value of demo // 配置文件中key对应有值,则defaultValue会被忽略
mysqlDriver = props.getProperty("mysqlDriver", "defaultMysqlDriver");
System.out.println(mysqlDriver); // com.mysql.jdbc.Driver }
}

  

  

测试Properties读取XML格式配置文件

最新文章

  1. Advanced Office Password Recovery安装后显示是英文版的
  2. Bitnami redmine备份升级步骤
  3. Python Memcached Script
  4. Android技能杂谈——如何优雅的处理控件的点击事件
  5. loj 1108(spfa判负环)
  6. 由反汇编C程序来理解计算机是如何工作的
  7. Ionic 测试针对Andorid平台
  8. pyqt5和qt-designer结合
  9. 【转】获取/设置IFRAME内对象元素的几种JS方法
  10. express整合webpack的打包文件dist
  11. chrome下positon:fixed无效或抖动的解决办法
  12. java的多态性
  13. 【非专业前端】vue+element+webpack
  14. Chrome_调试js出现Uncaught SyntaxError: Unexpected identifier
  15. Django 学习笔记(一) --- Hello Django
  16. VS编译后直接复制DLL库文件到其他目录下
  17. leetcode500
  18. (转)linux内核调优参数对比和解释
  19. MIPS架构——汇编代码转机器代码编译器 Matlab GUI
  20. ubuntu上minigui调试环境的建立

热门文章

  1. 开发nginx启动脚本及开机自启管理(case)
  2. python opencv SIFT,获取特征点的坐标位置
  3. cURL模拟POST提交数据
  4. Mybatis 报错 There is no getter for property named '***' in 'class java.lang.String'
  5. JDK动态代理给Spring事务埋下的坑!
  6. 简单的C#TCP协议收发数据示例
  7. YOLO 从数据集制作到训练
  8. Linux中的cat、more、less、head、tail命令
  9. 【vue】vue +element 搭建项目,实现实时输入效果时停止输入后发送请求
  10. 【vue】饿了么项目的相关笔记链接