Properties:
实质上是一个Map集合,存的是属性,属性以键值对的形式存在
- 注意:内部的键值必须是字符串,不需要泛型
- 优点:
- 以键值对的形式存储数据
- 内部针对属性的存储封装了大量的专有方法:load,store,list
- 创建Properties对象
Properties properties= new Properties();
- 进行数据的存储
properties.setProperty("01", "java");
properties.setProperty("02", "html");
- 取值
System.out.println(properties.getProperty("01"));
//里面放的是所有的key
Set<String>set = properties.stringPropertyNames();
for(String s:set)System.out.println("key :"+s+"value: "+properties.getProperty(s));
- 注意点一:当key不存在的时候,value返回的是后面的默认值
String value = properties.getProperty("05", "ios");
System.out.println(value);
- 注意点二:跟Map一样key是唯一的,同一个key后面的值会覆盖前面的值
properties.setProperty("01", "python");
System.out.println(properties.getProperty("01"));
- 获取系统的属性集合
Properties properties = System.getProperties();
查看系统属性集合
Set<String >set = properties.stringPropertyNames();
for(String s:set)System.out.println("key:"+s+" value:"+properties.getProperty(s));
改变内部的值
properties.setProperty("java.runtime.name", "wohsinibaba");
System.out.println(properties.getProperty("java.runtime.name"));
//原理:会先找到内存中找属性集合的对象,如果有直接使用,如果没有会重新初始化一个新的属性集合,并获取属性集合
直接将系统属性集合打印到控制台
properties.list(System.out);
- 模拟系统的属性集合操作
//创建属性集合对象
Properties properties = new Properties();
//创建输入流
FileReader fileReader = new FileReader("text7.txt");
//将输入流的内容存储到属性集合对象---通过load方法实现
properties.load(fileReader);
//实现打印到控制台
properties.list(System.out);
//fileReader.close();
properties.setProperty("aaaaaa", "乖乖");
//创建写出流
FileWriter fileWriter = new FileWriter("text7.txt");
//开始写回---第二个参数时注释说明
properties.store(fileWriter, "dajiaele");
fileReader.close();
fileWriter.close();