properties文件的读取
方式 一、需要指定路径的方式读取
(1)创建一个BufferedInputStream流对象,内部包装一个FileInputStream传入文件路径
(2)创建空参的Properties的对象
(3)调用load()将输入流写入Properties集合对象中
(4)形成键值对形式 可以进行相应的操作((class Properties extends Hashtable<Object,Object> )
方式 二、从classpath读取文件(不需要指定文件路径)
(1) 类名.class.getResourceAsStream()可以直接从classpath读取任意的资源文件,返回一个inputStream对象
(2)创建空参的Properties的对象
(3)调用load()将输入流写入Properties集合对象中
(4)打印输出
注意事项:在Classpath中的资源文件,路径总是以“/”开头
可以将*.properties保存在包下,也可以放在根目录(bin目录)下
//方式一、
// 创建输入流
try (BufferedInputStream in = new BufferedInputStream(new FileInputStream("d:\\娱乐\\data.properties"))) {
Properties pro = new Properties();
pro.load(in);// 将“输入流”加载至Properties集合对象中(流->集合)
// 根据key获取value
System.out.println(pro.get("cn"));
} catch (IOException e) {
e.printStackTrace();
}
//方式二
// 通过class path读取相对路径下的文件
// class path:当前项目编译后的bin目录
// temp.properties文件保存在 class path 根目录(bin目录下)
//InputStream in =PropertiesDemo02.class.getResourceAsStream("/temp.properties"))
// data.properties保存在class path根目录下的com/apesource/demo目录中
try (InputStream in = PropertiesDemo02.class.getResourceAsStream("/com/apesource/demo04/data.properties")) {
// 加载读取
Properties pros = new Properties();
pros.load(in);
System.out.println(pros);
} catch (IOException e) {
e.printStackTrace();
}
properties文件的写入
(1)创建一个空参的Properties集合对象
(2)调用put()进行写入键值对,传入内容
(3)使用 "输出流"将其中键值对,写入*.properties文件
(4)调用store(outputstream,注释)进行写入
try { // Properties格式文件的写入 Properties pro = new Properties(); pro.put("F1", "a"); pro.put("F2", "b"); pro.put("F3", "c"); pro.put("F4", "d"); pro.put("F5", "e"); // 使用 "输出流"将其中键值对,写入*.properties文件 try (BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("d:\\娱乐\\aaa.properties"))) { // pro.save(outputstream,注释) pro.store(out, "just do it");// (outputstream,注释) } } catch (IOException e) { e.printStackTrace(); }