Properties(就业班)(优先)
properties--概述
- 属于集合体系中的一员
我们从Properties类的定义中可以知道,它的定义没有泛型,说明Properites里面放什么类型都可以,但是一般放String - 总结
properties--作为map集合的基本使用
package com.itheima.test3;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class TT {
public static void main(String[] args) {
//作为map集合的基本使用(一般只添加String类型)
Properties properties = new Properties();
//1.增
properties.put("小龙女","杨过");
properties.put("郭靖","黄蓉");
System.out.println(properties);
//2.删
properties.remove("小龙女");
System.out.println(properties);
//3.改
//没有专门的set方法,使用put进行
//put:如果键不存在就add,如果键存在则进行覆盖
properties.put("小龙女","影志平");
System.out.println(properties);
//4.查
//1.通过键找到值
System.out.println(properties.get("小龙女"));
//2.遍历
//2.1将所有的键看成一个集合(通过键得到值)
final Set<Object> keys = properties.keySet();
System.out.println("开始遍历");
for (Object key : keys) {
System.out.println(key + ":" + properties.get(key));
}
System.out.println("-----------------------------------");
//2.2.将所有的键值对看成一个对象
final Set<Map.Entry<Object, Object>> entries = properties.entrySet();
for (Map.Entry<Object, Object> entry : entries) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
}
Properties---特有方法
- 这些特有的方法,在set中都有,只是换了一个名字而已
Properties-load
注意:
1.properties的load可以将文件中的键值对数据读取到Properties中(因为Properties只能存储键值对,这很好理解)。但是properties在我们以后的使用中我们一般用来读取配置文件(.properties结尾的文件)。所有properties读取的文件请使用.properties结尾
- 如果我们以后要手写Properties文件中的键值对,以键=值的形式,中间不要加其他的字符或者是空格
文件相对路劲
文件的相对路径是从当前模块开始的路径
package com.itheima.test3;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class TT {
public static void main(String[] args) throws IOException {
Properties p = new Properties();
//test-package为模块名
p.load(new FileReader("test-package/src/prop.properties"));
System.out.println(p);//{password=123, username=zhangsan}
}
}
properties可以将文件中的键值对读取出来自动添加的集合中
- 如果我们使用的是map集合呢
我们可以使用Io流一次读一整行,然后根据=进行切割出键和值。然后添加到maP,可以看出这样比较麻烦
Properties--store
将propertees集合中的数据写入到文件中
package com.itheima.test3;
import java.io.*;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class TT {
public static void main(String[] args) throws IOException {
Properties properties = new Properties();
properties.setProperty("张三","123");
properties.setProperty("李四","345");
properties.setProperty("王五","789");
FileWriter fileWriter = new FileWriter("test-package/src/prop.properties");
properties.store(fileWriter,"");//第二个参数是properties文件中的注释
fileWriter.close();
}
}