Java—— 配置文件Properties
配置文件的作用
1:可以把软件的设置永久化存储
2:如果我们要修改参数,不需要改动代码,直接修改配置文件就可以了
properties
说明
properties是一个双列集合,拥有Map集合所有的特点
有一些特有的方法,可以把集合中的数据,按照键值对的形式写到配置文件当中,也可以把配置文件中的数据,读取到集合中来
Properties作为双列集合的方法
拥有Map集合所有的特点,可以使用Map集合的方法
import java.util.Map; import java.util.Properties; import java.util.Set;public class test {public static void main(String[] args) {//创建集合的对象Properties prop = new Properties();//添加数据prop.put("aaa", "111");prop.put("aaa", "222");prop.put("bbb", "333");prop.put("ccc", "444");//遍历数据//方式一Set<Object> keys = prop.keySet();for (Object key : keys) {Object value = prop.get(key);System.out.println(key + "=" + value);}//aaa=222//ccc=444//bbb=333//方式二Set<Map.Entry<Object, Object>> entries = prop.entrySet();for (Map.Entry<Object, Object> entry : entries) {Object key = entry.getKey();Object value = entry.getValue();System.out.println(key + "=" + value);}//aaa=222//ccc=444//bbb=333} }
Properties中特有的读写方法
方法 说明 void store(OutputStream out, String comments) 将此Properties表中的键值对保存到配置文件中,参数一为关联配置文件的输出流,参数二为注释 void store(Writer writer, String comments) void load(InputStream inStream) 从配置文件中读取属性列表(键值对),参数为关联配置文件的输入流 void load(Reader reader) 将Properties表中的保存到配置文件中
import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties;public class StoreDemo {public static void main(String[] args) throws IOException {//创建Properties对象Properties prop = new Properties();//添加要往配置文件中赔偿的数据prop.put("zhangsan", "23");prop.put("lisi", "24");prop.put("wangwu", "25");prop.put("zhaoliu", "26");//将Properties表中的保存到配置文件中FileOutputStream fos = new FileOutputStream("day06\\a.properties");prop.store(fos, "data");fos.close();} }
从配置文件中读取属性列表(键值对)
import java.io.FileReader; import java.io.IOException; import java.util.Map; import java.util.Properties; import java.util.Set;public class LoadDemo {public static void main(String[] args) throws IOException {//创建Properties对象Properties prop = new Properties();//从配置文件中读取属性列表(键值对)FileReader fr = new FileReader("day06\\a.properties");prop.load(fr);//遍历得到读取的数据Set<Map.Entry<Object, Object>> entries = prop.entrySet();for (Map.Entry<Object, Object> entry : entries) {Object key = entry.getKey();Object value = entry.getValue();System.out.println(key + " = " + value);}//lisi = 24//zhaoliu = 26//zhangsan = 23//wangwu = 25} }
修改配置文件后,读取到的数据也会改变,从而可以不改变代码修改参数