Java之Properties
Properties 介绍
Properties 是在java.util包中,该类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。
因为 Properties 继承于 Hashtable(即键值对,线程安全),所以可对 Properties 对象应用 put 和 putAll 方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项。
相反,应该使用setProperty 方法。如果在“不安全”的 Properties 对象(即包含非 String 的键或值)上调用 store 或 save 方法,则该调用将失败。
类似地,如果在“不安全”的 Properties 对象(即包含非 String 的键)上调用propertyNames或 list 方法,则该调用将失败。
一般Properties 文件是一个配置文件,主要用于项目业务等属性配置,可以实现不同配置对应不同业务流程或功能。
构造方法
Properties()
创建一个无默认值的空属性列表。
Properties(Properties defaults)
创建一个带有指定默认值的空属性列表。
常用方法
load(InputStream inStream)
从输入流中读取属性列表(键和元素对)。
setProperty(String key, String value)
调用 Hashtable 的方法 put。
store(OutputStream out, String comments)
以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。
getProperty(String key)
用指定的键在此属性列表中搜索属性。
clear()
将此哈希表清空,使其不包含任何键。
创建temp.properties文件(读取配置文件的相关属性)
在演示方法之前我们需要先创建一个后缀为properties的文件,文件名就叫做temp.properties吧。这个时候需要用到File类了。
/**
* 在程序目录下创建一个temp.properties文件
*/
File dirPath = new File(".");//创建一个储存文件temp.properties文件的绝对路径
String filePath = dirPath.getCanonicalPath() + "\\src\\temp.properties";//开始创建文件
File file = new File(filePath);//创建文件
boolean bool = file.createNewFile();
System.out.println(bool);//在当前程序下的src文件夹下成功创建了一个temp.properties文件
结果:true
load,setProperty,store
在写入配置文件内容需要使用到load,setProperty,store方法
*** 在程序目录下创建一个temp.properties文件*/
File dirPath = new File(".");//创建一个储存文件temp.properties文件的绝对路径
String filePath = dirPath.getCanonicalPath() + "\\src\\temp.properties";
//创建properties对象
Properties properties = new Properties();//加载temp.properties文件
properties.load(new FileInputStream(filePath));
//设置数据
properties.setProperty("1","zhangsan");
properties.setProperty("2","lisi");
properties.setProperty("3","wangwu");//将数据保存到文件中
properties.store(new FileOutputStream(filePath),"This is properties file!!!");
//temp.properties文件中的内容。
#This is properties file!!!#Fri Apr 13 14:31:53 CST 20183=wangwu2=lisi1=zhangsan
getProperty(String key)
用指定的键在此属性列表中搜索属性。
System.out.println(properties.get("1"));
结果:zhangsan
clear()
将此哈希表清空,使其不包含任何键。
properties.clear();//清空数据
System.out.println(properties.get("1"));//再次获取就是null了
结果:null
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)