且敬我疯狂,生命中不败的篇章
—— 24.6.13
Properties结合IO流使用方法
一、回顾:
1.概述:Properties extends Hashtable
2.特点:
a.无序,无索引
b.key唯一,value可重复
c.线程安全
d.key和value默认类型都是String3.特有方法(Map里的方法都可用):
setProperty(string key,String value) —> 存键值对
getProperty(String key) —> 根据key获取value
StringPropertyNames() —> 获取所有的key存放在set集合中
load(InputStream in) —> 将流中的数据加载到Properties集合中
二、使用场景
配合配置文件使用
注意:
将来我们不能将很多的硬数据放到源码中,比如用户名和密码这些数据,因为将来我们有可能换用户名或者密码,如果一换,我们就需要去源码中修改,将来我们的类和类之间都有联系,有可能牵一发动全身,所以我们需要将这些数据提取出来,放到文件中,改的时候直接去文件中改,源码不需要改动
三、创建配置文件:
1.在模块下右键 -> file -> 取名为 xxx.properties
2.在xxx.properties文件中写配置数据
a.key和value都是 key = value 形式
b.key和value都是String的,但是不要加双引号
c.每个键值对写完之后,需要换行再写下一对
d.键值对之间最好不要有空格(空格可以有,但是不建议写)
e.键值对中建议不要使用中文(中文可以有,但是直接读取会乱码,需要转换流转码)
示例
jdbc.username=root
jdbc.password=1234
import java.io.FileInputStream;
import java.util.Properties;
import java.util.Set;
public class Demo284Properties1 {
public static void main(String[] args) throws Exception {
Properties properties = new Properties();
FileInputStream fis = new FileInputStream("AllWillBest_Java/jdbc.properties");
properties.load(fis);
Set<String> set = properties.stringPropertyNames();
for (String key : set) {
System.out.println(key + "..." + properties.getProperty(key));
}
}
}