【Java笔记】配置文件java.util.Properties类的使用
2023-09-11 14:22:25 时间
配置文件的路径:项目名/src/main/resources/mmall.properties
mmall.properties的内容是键值对。例如假设写了ftp服务器的一些信息。
ftp.server.ip=ftp://localhost:21 ftp.user=root ftp.pass=root ftp.server.http.prefix=localhost:21/
新建一个工具类PropertiesUtil.java
package com.mmall.util; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; import java.io.InputStreamReader; import java.util.Properties; /** * Created by Gu on 2018/1/10 0010. * 配置文件 */ public class PropertiesUtil { // slf4j日志 private static Logger logger = LoggerFactory.getLogger(PropertiesUtil.class); private static Properties props; /** * 读取配置文件 * 本类被加载时就执行静态代码块 */ static { String fileName = "mmall.properties"; // 配置文件的文件名 props = new Properties(); try {
// 加载配置文件 props.load(new InputStreamReader(PropertiesUtil.class.getClassLoader().getResourceAsStream(fileName), "UTF-8")); } catch (IOException e) { logger.error("配置文件读取异常", e); } } /** * 根据key获取配置文件中的value * @param key * @return */ public static String getProperty(String key){ String value = props.getProperty(key.trim()); if (StringUtils.isBlank(value)){ return null; } return value.trim(); } public static String getProperty(String key, String defaultValue){ String value = props.getProperty(key.trim()); if (StringUtils.isBlank(value)){ value = defaultValue; } return value.trim(); } }
调用工具类方法,根据key获取配置文件中相应的value。
String str = PropertiesUtil.getProperty("ftp.user", "root");
小结:
- 获取配置文件中的值时,key和value都要trim()去掉两端的空格,防止配置文件中的空格影响结果。
- 关于slf4j日志框架的使用,参考http://blog.csdn.net/foreverling/article/details/51385128
2018.02.23补充:
读写配置文件还可以用Java的ResourceBundle类,参考https://www.cnblogs.com/yuguangblog/p/6180498.html
相关文章
- java -version 问题 : C:ProgramDataOracleJavajavapath;
- JAVA环境变量一键配置工具
- JAVA 注解教程(四)Java 预置的注解
- Java反射异常:java.lang.NoSuchFieldException
- 开源一个基于nio的java网络程序
- Java实现第九届蓝桥杯书号验证
- 新手学JAVA(八)----走进JDBC
- 机器学习笔记 - Java学习框架Deeplearning4j初体验
- Java多线程学习笔记 - 十三、CAS原理
- 当年的Java考试:JAVA&移动应用&大数据-大三-社区疫苗接种管理系统(全部源码·保姆式呵护)
- 【java】Java教程
- 【java】Java连接mysql数据库及mysql驱动jar包下载和使用
- 【java】java 多线程编程
- Java类的初始化顺序(静态变量、普通成员变量、静态代码块、构造方法的执行顺序);static静态代码块执行时机
- Java笔记:二进制与Java中的基本数据类型
- Java 14 发布!不使用"class"也能定义类了?还顺手要干掉Lombok!
- 详解jvm之java类加载机制和类加载器(ClassLoader) 深入理解Java类加载器(ClassLoader) 如何自定义类加载器 深入说明双亲委派 双亲委派模型的破坏者-线程上下文类加载器
- 一文详解java线程池 详解Java线程池的七个参数 详解池化技术 java如何选择核心线程数 详解Java线程池的拒绝策略
- java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)
- 使用Java操作Elasticsearch(Elasticsearch的java api使用)
- 聚类算法之DBScan(Java实现)
- 用eclipse中打开Java项目