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

猜你喜欢

转载自www.cnblogs.com/canzhen/p/java_properties.html
今日推荐