Properties使用

news2024/10/5 22:24:40

Properties是一种特殊的文本文件,可用来存储配置文件,或者存储一些键值对格式的数据信息
在这里插入图片描述

一、底层原理

分析源码可知,Properties底层实现是Map
在这里插入图片描述在这里插入图片描述

二、创建&常用方法&遍历

1、创建

// 创建Properties对象
Properties properties = new Properties();

2、常用方法

因为Properties底层实现是Map,所以Map对象可用的方法,Properties也可以用

【方法一】put(String key, String value):添加元素/修改元素;key在Properties中已存在,put会修改原元素的值

【方法二】remove(String key):删除元素

【方法三】get(String key):获取元素

【方法四】clear():清空Properties内的所有元素

更多参考Map常用方法
https://blog.csdn.net/qq_42108331/article/details/130648102

3、遍历

参考Map的三种遍历方式,都可以套用
https://blog.csdn.net/qq_42108331/article/details/130650223

三、Properties独有的方法

【方法一】setProperty(String key, String value):添加元素/修改元素

	// 创建Properties对象
	Properties properties = new Properties();
	
	// 方法一:如果键不存在,相当于put;如果存在,就修改原元素的值
	properties.setProperty("admin", "123456");
	properties.setProperty("admin", "654321");
	properties.setProperty("root", "sa");
	properties.setProperty("local", "8080");
	properties.setProperty("guest", "qwer");
	
	System.out.println(properties);

在这里插入图片描述

【方法二】get(String key):根据键查找元素

	// 创建Properties对象
	Properties properties = new Properties();
	
	// 方法一:如果键不存在,相当于put;如果存在,就修改原元素的值
	properties.setProperty("admin", "123456");
	properties.setProperty("admin", "654321");
	properties.setProperty("root", "sa");
	properties.setProperty("local", "8080");
	properties.setProperty("guest", "qwer");
	
	// 方法二:根据键获取元素的值
	System.out.println("admin=" + properties.get("admin"));
	System.out.println("root=" + properties.get("root"));

在这里插入图片描述
值得一提的是,properties.get()有个重载方法,可以设置没找到元素时,要返回的信息

	// 创建Properties对象
	Properties properties = new Properties();
	
	// 方法一:如果键不存在,相当于put;如果存在,就修改原元素的值
	properties.setProperty("admin", "123456");
	properties.setProperty("admin", "654321");
	properties.setProperty("root", "sa");
	properties.setProperty("local", "8080");
	properties.setProperty("guest", "qwer");
	
	// 根据键获取不到元素的值,可以在方法后面设置未找到时,返回“未找到”
	System.out.println(properties.getProperty("unknown", "未找到"));

【方法三】stringPropertyNames():把Properties的key值返回成一个不可修改的Set集合

需要注意的是,该方法返回的集合不可修改,也不能强制类型转换,仅可打印查看

	// 创建Properties对象
	Properties properties = new Properties();
	
	// 方法一:如果键不存在,相当于put;如果存在,就修改原元素的值
	properties.setProperty("admin", "123456");
	properties.setProperty("admin", "654321");
	properties.setProperty("root", "sa");
	properties.setProperty("local", "8080");
	properties.setProperty("guest", "qwer");
	
	// 方法三:把Properties的key值返回成一个不可修改的Set集合
	Set<String> set = properties.stringPropertyNames();
	
	System.out.println(set);

在这里插入图片描述

四、保存&读取本地Properties信息

1、store(Writer writer, String comments):保存Properties到本地

	// 创建Properties对象
	Properties properties = new Properties();
	
	properties.setProperty("admin", "123456");
	properties.setProperty("admin", "654321");
	properties.setProperty("root", "sa");
	properties.setProperty("local", "8080");
	properties.setProperty("guest", "qwer");
	
	// 保存Properties的信息到本地,参数一:字符输出流;参数二:Properties文件内的注释信息
	properties.store(new FileWriter("prop.properties"), "This is a properties file.");

在这里插入图片描述

2、load(Reader reader):加载本地的Properties文件

	// 创建Properties对象
	Properties properties = new Properties();
	
	// 加载本地的Properties文件,参数是字符输入流
	properties.load(new FileReader("prop.properties"));
	
	// 打印加载的信息
	System.out.println(properties);

在这里插入图片描述

五、总结&注意事项

总的来说,Properties用起来相当于Key和Value都指定为String的Map对象,只是在此基础上增加了保存到本地(store方法)和从本地读取(load方法)的方法

另外需要注意的是,如果手动编写Properties文件,键和值之间用“=”连接,不要另外加分号或者空格
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/553022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设置Ubuntu 20.04的静态IP地址

引言&#xff1a;我们做嵌入式或者其他的项目时&#xff0c;有时候不免发现&#xff0c;Ubuntu的ip地址经常会改变&#xff0c;这个时候就需要我们手动配置静态IP了。 给Ubuntu设置一个静态IP地址有以下几个好处&#xff1a; 持久性&#xff1a;静态IP地址是固定不变的&#xf…

一.RxJava

1.RxJava使用场景 RxJava核心思想 Rx思维:响应式编程,从起点到终点,中途不能断掉,并且可以在中途添加拦截. 生活中的例子: 起点(分发事件,我饿了)->下楼->去餐厅->点餐->终点(吃饭,消费事件) 程序中的例子: 起点(分发事件,点击登录)->登录API->请求服务器-…

Lucene(3):Lucene全文检索的流程

1 Lucene准备 Lucene可以在官网上下载&#xff1a;Apache Lucene - Welcome to Apache Lucene。我们使用的是7.7.2版本&#xff0c;文件位置如下图&#xff1a; 使用这三个文件的jar包&#xff0c;就可以实现lucene功能 2 开发环境准备 JDK&#xff1a; 1.8 &#xff08;Luce…

python 面向对象--类,对象,属性,方法,魔法方法

1.理解面向对象思想 面向过程思想: 遇到问题,分析步骤.按照步骤解决问题.(复杂,重复) 面向对象思想: 遇到问题,找到能解决问题的对象去解决.(简单,复用) 2.类和对象 # 定义类的格式: # class 类名(): # 代码 # ......class Student(): ​def study(self):print(学生好…

【连续介质力学】Voigt符号

Voigt符号 一个对称二阶张量有6个独立的分量&#xff0c;那么就可以将他表示成列向量的形式&#xff1a; 这种表示方式为Voigt符号&#xff0c;也可以将二阶张量表示成&#xff1a; 正如minor对称的四阶张量C&#xff0c; C i j k l C j i k l C i j l k C j i l k C_{ij…

hive函数

函数 Hive的函数分为两大类∶内置函数(Built-in Functions )、用户定义函数UDF (User-Defined Functions ) . 内置函数可分为︰数值类型函数、日期类型函数、字符串类型函数、集合函数、条件函数等; 用户定义函数根据输入输出的行数可分为3类:UDF、UDAF、UDTF。 UDF:普通函…

一图看懂 charset_normalizer 模块:字符集规范化,真正的第一个通用字符集检测器,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 charset_normalizer 模块&#xff1a;字符集规范化&#xff0c;真正的第一个通用字符集检测器&#xff0c;资料整理笔记&#xff08;大全&#xff09; &#x1f9ca;摘要&a…

AI人工智能决策树分类器的原理、优缺点、应用场景和实现方法

决策树分类器&#xff08;Decision Tree Classifier&#xff09;是一种常用的机器学习算法&#xff0c;它被广泛应用于分类和回归问题中。在人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;领域中&#xff0c;决策树分类器是一种简单而有效的算法&…

DETR3D 论文学习

1. 解决了什么问题&#xff1f; 对于低成本自动驾驶系统&#xff0c;仅凭视觉信息进行 3D 目标检测是非常有挑战性的。目前的多相机 3D 目标检测方法有两类&#xff0c;一类直接对单目图像做预测&#xff0c;没有考虑 3D 场景的结构或传感器配置。这类方法需要多步后处理&…

tcpdump 抓包和记录、tshark 过滤抓包

目录 tcpdump 一、包名 二、可用参数 tcpdump -nn tcpdump -nn -i 网卡名 —— 指定显示的网卡 tcpdump -nn -i 网卡名 port 端口名 —— 指定显示的端口 tcpdump -nn -i 网卡名 not port 端口名 —— 排除指定的端口不显示 tcpdump -nn -i …

JavaWeb15 - web 应用常用功能 -文件上传下载

1. 基本介绍 文件的上传和下载&#xff0c;是常见的功能。后面项目就使用了文件上传下载。如果是传输大文件&#xff0c;一般用专门工具或者插件文件上传下载需要使用到两个包 , 需要导入说明: 2. 文件上传 2.1 文件上传的基本原理 ● 文件上传原理示意图, 一图胜千言 …

进程调度策略

1 先进先出 FIFO 2 最短任务优先 SJF https://blog.51cto.com/u_13064014/5079546?btotalstatistic

机器学习和大数据:如何利用机器学习算法分析和预测大数据

第一章&#xff1a;引言 近年来&#xff0c;随着科技的迅速发展和数据的爆炸式增长&#xff0c;大数据已经成为我们生活中无法忽视的一部分。大数据不仅包含着海量的信息&#xff0c;而且蕴含着无数的商机和挑战。然而&#xff0c;如何从这些海量的数据中提取有价值的信息并做…

【CANN训练营0基础赢满分秘籍】昇腾AI入门课(PyTorch)

1 昇腾AI全栈架构 昇腾计算产业是基于昇腾系列处理器和基础软件构睫的全栈Al计算基础设施&#xff0e;行业应用及服务&#xff0c;包括昇腾系列处理器、Atlas系列硬件、CANN (Compute Architecture for Neural Networks&#xff0c;异构计算架构》、Al计算框架、应用使能、全流…

LeetCode_Day4 | 好有难度的一个环形链表啊(在最后)!

LeetCode_链表 24. 两两交换链表中的节点1.题目描述2.虚拟头节点法1.思路2.代码实现 3.递归法1.思路2.代码实现 19. 删除链表的倒数第n个节点1.题目描述2.思路&#xff1a;双指针法3.代码实现 面试题 02.07. 链表相交1.题目描述2.思路3.代码实现 142. 环形链表 II1. 题目描述2.…

【SNAT和DNAT的原理与应用】

目录 一、SNAT原理与应用1、SNAT概述2、SNAT的应用环境3、进行SNAT转换后的情况 二、SNAT实验三、DNAT1、DNAT策略概述2、DNAT 实验 一、SNAT原理与应用 1、SNAT概述 SNAT 应用环境&#xff1a;局域网主机共享单个公网IP地址接入Internet&#xff08;私有不能早Internet中正常…

网络知识点之-静态路由

静态路由&#xff08;英语&#xff1a;Static routing&#xff09;是一种路由的方式&#xff0c;路由项&#xff08;routing entry&#xff09;由手动配置&#xff0c;而非动态决定。与动态路由不同&#xff0c;静态路由是固定的&#xff0c;不会改变&#xff0c;即使网络状况已…

进程控制(总)

目录 进程创建 fork函数初识&#xff1a; 写时拷贝&#xff1a; fork常规用法&#xff1a; fork调用失败的原因&#xff1a; 进程终止 进程退出场景&#xff1a; 进程常见退出方法&#xff1a; _exit函数 exit函数 return退出&#xff1a; 进程等待 进程等待的必…

UE5实现模型压平效果

文章目录 1.实现目标2.实现过程2.1 实现原理2.2 蓝图实现2.3 闪面问题与压平精度3.参考资料1.实现目标 模型压平功能是GIS系统中的一个常用功能,可以用于模型的替换,数据的对比等。本文在UE5中通过修改材质的方式实现,实现模型压平的功能,包括常规建模的StaticMesh,以及C…

2023年网络安全竞赛——Windows操作系统渗透测试Server2124

任务五:Windows操作系统渗透测试 任务环境说明: 服务器场景:Server2124(关闭链接)服务器场景操作系统:Windows(版本不详)通过本地PC中渗透测试平台Kali对服务器场景Server2124进行系统服务及版本扫描渗透测试,并将该操作显示结果中1433端口对应的服务版本信息作为Fla…