全网最细Properties详解(自封的)
Properties详解
在讲解properties类时,我们首先要清楚一个概念:
什么是Properties文件?
你可能不知道properties文件,但你一定知道txt文件
txt文件是一种后缀为. txt的文本文件,是微软在操作系统上附带的一种文本格式,是最常见的一种文件格式
而properties文件是一种后缀为.properties的文本文件,在Java中常被用作配置文件
这种文件以<key(键),value(值)>的格式来存储内容/参数配置,Java中可以使用Properties类来读取这个文件
Properties类
Properties类存在于Java.util.Properties包下,就像上面所说的一样,该类的主要作用是读取Java的properties配置文件
在API中如下所示:
汉化版如下:
好,现在我们知道了:
- properties是一种文件
- Properties类是Java中用来处理properties文件的类
那么我们该如何用Properties类来处理properties文件呢?
Properties文件处理
我们要处理properties文件就要用到Properties类,要用到一个类首先要干嘛?
我们需要至少一个Properties对象:
代码如下:
//实例化一个Properties对象
Properties pros = new Properties();
OK,现在我们已经有了一个Properties对象,那么我们该如何用该对象往properties文件写数据呢?
不过在此之前,我们还得先想想现在有properties文件吗,好像并没有,所有我们还需要创建properties文件
在这里我们需要用到IO流跟异常的相关基础知识(不过俺暂时还没写,如果写了俺会挂上链接)
代码如下:
//创建一个test1.properties文件并通过文件输出流写入
FileOutputStream fos = new FileOutputStream("test1.properties");
//引入Writer,可以明确该输出流的字符集,确保写入配置文件的中文编码正确(utf-8格式)
OutputStreamWriter ops = new OutputStreamWriter(fos,"utf-8");
好,现在我们已经有了一个名为test1的properties文件,现在我们要往里面写数据了,在这里我们需要用到Properties类中的setProperty方法
该方法API如下:
代码如下:
//将需要写入的属性内容通过set方法,存入properties对象中
pros.setProperty("name","一呆");
pros.setProperty("age","18");
pros.setProperty("money","0");
现在我们已经往里面写数据了,但这个数据只是临时数据,所以我们还需要保存数据,在这里我们需要用到Properties类中的store方法
该方法API如下:
代码如下:
//调用properties的存储方法
pros.store(ops,"测试数据");
在最后,我们需要释放使用的资源,换句话说,我们需要关闭资源
代码如下:
//关闭资源
ops.close();
fos.close();
我们现在总结一下要对properties文件进行处理都要干些啥:
- 需要Properties对象
- 需要创建properties文件(通过IO流)
- 需要进行异常处理
- 需要通过Properties类中的setProperty方法往properties文件里写数据
- 需要通过Properties类中的store方法保存写入properties文件的数据
- 需要关闭资源
完整代码如下:
public class PropertiesTest {
@Test
public void propertiesTest(){
//1.先实例化一个Properties对象
Properties pros = new Properties();
try {
//2.创建一个输出流对象
FileOutputStream fos = new FileOutputStream("test1.properties");
//3.引入Writer,可以明确该输出流的字符集,确保写入配置文件的中文编码正确
OutputStreamWriter ops = new OutputStreamWriter(fos,"utf-8");
//4.将需要写入的属性内容通过set方法,存入properties对象中
pros.setProperty("name","一呆");
pros.setProperty("age","18");
pros.setProperty("money","0");
//5.调用properties的存储方法
pros.store(ops,"测试数据");
//6.关闭资源
ops.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
创建的properties文件如下:
这些都是基础知识,暂时先写这么多(单纯想偷懒而已)~
持续更新ing~