当前位置: 首页 > news >正文

Java—— 配置文件Properties

配置文件的作用

1:可以把软件的设置永久化存储

2:如果我们要修改参数,不需要改动代码,直接修改配置文件就可以了

properties

说明

properties是一个双列集合,拥有Map集合所有的特点

有一些特有的方法,可以把集合中的数据,按照键值对的形式写到配置文件当中,也可以把配置文件中的数据,读取到集合中来

Properties作为双列集合的方法

拥有Map集合所有的特点,可以使用Map集合的方法

import java.util.Map;
import java.util.Properties;
import java.util.Set;public class test {public static void main(String[] args) {//创建集合的对象Properties prop = new Properties();//添加数据prop.put("aaa", "111");prop.put("aaa", "222");prop.put("bbb", "333");prop.put("ccc", "444");//遍历数据//方式一Set<Object> keys = prop.keySet();for (Object key : keys) {Object value = prop.get(key);System.out.println(key + "=" + value);}//aaa=222//ccc=444//bbb=333//方式二Set<Map.Entry<Object, Object>> entries = prop.entrySet();for (Map.Entry<Object, Object> entry : entries) {Object key = entry.getKey();Object value = entry.getValue();System.out.println(key + "=" + value);}//aaa=222//ccc=444//bbb=333}
}

Properties中特有的读写方法

方法说明
void store(OutputStream out, String comments) 将此Properties表中的键值对保存到配置文件中,参数一为关联配置文件的输出流,参数二为注释
void store(Writer writer, String comments) 
void load(InputStream inStream) 从配置文件中读取属性列表(键值对),参数为关联配置文件的输入流
void load(Reader reader)

将Properties表中的保存到配置文件中

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;public class StoreDemo {public static void main(String[] args) throws IOException {//创建Properties对象Properties prop = new Properties();//添加要往配置文件中赔偿的数据prop.put("zhangsan", "23");prop.put("lisi", "24");prop.put("wangwu", "25");prop.put("zhaoliu", "26");//将Properties表中的保存到配置文件中FileOutputStream fos = new FileOutputStream("day06\\a.properties");prop.store(fos, "data");fos.close();}
}

从配置文件中读取属性列表(键值对)

import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.Properties;
import java.util.Set;public class LoadDemo {public static void main(String[] args) throws IOException {//创建Properties对象Properties prop = new Properties();//从配置文件中读取属性列表(键值对)FileReader fr = new FileReader("day06\\a.properties");prop.load(fr);//遍历得到读取的数据Set<Map.Entry<Object, Object>> entries = prop.entrySet();for (Map.Entry<Object, Object> entry : entries) {Object key = entry.getKey();Object value = entry.getValue();System.out.println(key + " = " + value);}//lisi = 24//zhaoliu = 26//zhangsan = 23//wangwu = 25}
}

修改配置文件后,读取到的数据也会改变,从而可以不改变代码修改参数

http://www.dtcms.com/a/347515.html

相关文章:

  • Spring Boot 实现 POJO 级联封装复杂属性
  • Redis学习笔记 ----- 缓存
  • 寻鲜之旅“咖”约深圳,容声冰箱引领“养鲜”新体验
  • 解决coze api使用coze.workflows.runs.create运行workflow返回400,但text为空
  • ⚡ Ranger 基础命令与功能详解
  • Talkie AI
  • 硬件笔记(27)---- 恒流源电路原理
  • 环境 (shell) 变量
  • QT-Mysql-查询语句-查询是否有表-表列名-查询记录
  • 力扣hot100:搜索二维矩阵与在排序数组中查找元素的第一个和最后一个位置(74,34)
  • ros 消息类型与查阅相关内容
  • XCVM1802-2MSEVSVA2197 XilinxAMD Versal Premium FPGA
  • 同步和异步、阻塞和非阻塞的再理解
  • JAVA核心基础篇-集合
  • 力扣(组合)
  • 如何解决 pyqt5 程序“长时间运行失效” 问题?
  • React学习(十一)
  • Windows 平台查看端口占用情况并终止进程
  • flink常见问题之非法配置异常
  • leetcode 852 山脉数组的顶峰索引
  • 讲点芯片验证中的统计覆盖率
  • 【URP】[平面阴影]原理与实现
  • 如何使用和优化SQL Server存储过程:全面指南
  • 论文阅读:arxiv 2025 Can You Trick the Grader? Adversarial Persuasion of LLM Judges
  • 【数据分享】地级市对外开放程度(2002-2021)-有缺失值
  • SpringBoot自动装配原理深度解析
  • 【LeetCode 热题 100】300. 最长递增子序列——(解法一)记忆化搜索
  • mmap映射物理内存之四内核cache同步
  • 后台管理系统-14-vue3之tag标签页的实现
  • JEI(Journal of Electronic lmaging)SCI四区期刊