Properties使用

0 阅读3分钟

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常用方法 blog.csdn.net/qq_42108331…

3、遍历

参考Map的三种遍历方式,都可以套用 blog.csdn.net/qq_42108331…

三、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文件,键和值之间用“=”连接,不要另外加分号或者空格 在这里插入图片描述

首次发布

hezhongying.blog.csdn.net/article/det…