Java 读取配置文件数据
2024-10-19 06:22:28
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格式配置文件
最新文章
- Advanced Office Password Recovery安装后显示是英文版的
- Bitnami redmine备份升级步骤
- Python Memcached Script
- Android技能杂谈——如何优雅的处理控件的点击事件
- loj 1108(spfa判负环)
- 由反汇编C程序来理解计算机是如何工作的
- Ionic 测试针对Andorid平台
- pyqt5和qt-designer结合
- 【转】获取/设置IFRAME内对象元素的几种JS方法
- express整合webpack的打包文件dist
- chrome下positon:fixed无效或抖动的解决办法
- java的多态性
- 【非专业前端】vue+element+webpack
- Chrome_调试js出现Uncaught SyntaxError: Unexpected identifier
- Django 学习笔记(一) --- Hello Django
- VS编译后直接复制DLL库文件到其他目录下
- leetcode500
- (转)linux内核调优参数对比和解释
- MIPS架构——汇编代码转机器代码编译器 Matlab GUI
- ubuntu上minigui调试环境的建立
热门文章
- 开发nginx启动脚本及开机自启管理(case)
- python opencv SIFT,获取特征点的坐标位置
- cURL模拟POST提交数据
- Mybatis 报错 There is no getter for property named '***' in 'class java.lang.String'
- JDK动态代理给Spring事务埋下的坑!
- 简单的C#TCP协议收发数据示例
- YOLO 从数据集制作到训练
- Linux中的cat、more、less、head、tail命令
- 【vue】vue +element 搭建项目,实现实时输入效果时停止输入后发送请求
- 【vue】饿了么项目的相关笔记链接