一.介绍
Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。像Python支持的配置文件是.ini文件,同样,它也有自己读取配置文件的类ConfigParse,方便程序员或用户通过该类的方法来修改.ini配置文件。在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式,文本注释信息可以用"#"来注释。
二.知识点介绍
1、概念
2、使用方法举例
3、将配置文件中的数据存储到文件中
4、读取配置文件中的数据,同时更新数据,并保存
三.上课视频对应说明文档
1、概念及常用方法
Properties是双列集合的一种,是Hashtable的子类。属性集:key---value
该类没有泛型,通过setProperty / getProperty/ stringPropertyNames完成针对字符串的操作。
它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。包含IO相关方法:
(1)load(InputStream) 把指定流所对应的文件中的数据,读取出来,保存到Properties集合中
(2)load(Reader)
(3)store(OutputStream,commonts)把集合中的数据,保存到指定的流所对应的文件中,参数commonts代表对描述信息
(4)store(Writer,comments);
注意:使用字符流FileReader就可以完成文件中文的读取操作了
2、使用方法举例
代码示例:
/*
* Properties集合,它是唯一一个能与IO流交互的集合
*/
public class PropertiesDemo01 {
public static void main(String[] args) {
//创建集合对象
Properties prop = new Properties();
//添加元素到集合
//prop.put(key, value); //setProperty底层调用put方法
prop.setProperty("周迅", "张学友");
prop.setProperty("李小璐", "贾乃亮");
prop.setProperty("杨幂", "刘恺威");
//System.out.println(prop);//测试的使用
//遍历集合
Set<String> keys = prop.stringPropertyNames();
for (String key : keys) {
//通过键 找值
//prop.get(key)
String value = prop.getProperty(key);
System.out.println(key+"==" +value);
}
}
}
3、将配置文件中的数据存储到文件中
代码示例:
/**
* 需求:使用Properties集合,完成把集合内容存储到IO流所对应文件中的操作
*
* 分析:
* 1,创建Properties集合
* 2,添加元素到集合
* 3,创建流
* 4,通过store方法把集合中的数据存储到流所对应的文件中
* 5,关闭流
*/
public class PropertiesDemo02 {
public static void main(String[] args) throws IOException {
//1,创建Properties集合
Properties prop = new Properties();
//2,添加元素到集合
prop.setProperty("周迅", "张学友");
prop.setProperty("李小璐", "贾乃亮");
prop.setProperty("杨幂", "刘恺威");
//3,创建流
FileWriter out = new FileWriter("prop.properties");
//4,把集合中的数据存储到流所对应的文件中
prop.store(out, "save data");
//5,关闭流
out.close();
}
}
4、读取配置文件中的数据,同时更新数据,并保存
/*
* 需求:从属性集文件prop.properties 中取出数据,保存到集合中
* 分析:
* 1,创建集合
* 2,创建流对象
* 3,把流所对应文件中的数据 读取到集合中
* load(InputStream) 把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中
load(Reader)
* 4,关闭流
* 5,显示集合中的数据
*/
public class PropertiesDemo03 {
public static void main(String[] args) throws IOException {
//1,创建集合
Properties prop = new Properties();
//2,创建流对象
FileInputStream in = new FileInputStream("prop.properties");
//FileReader in = new FileReader("prop.properties");
//3,把流所对应文件中的数据 读取到集合中
prop.load(in);
//4,关闭流
in.close();
//5,显示集合中的数据
System.out.println(prop);
}
}
网友评论