文章目录
- 属性文件
- 特殊文件概述
- Properties属性文件概述
- Properties属性文件读取
- Properties属性文件写操作
属性文件
特殊文件概述
IO流是用来读、写文件中的数据。但是我们接触到的文件大部分都是普通的文本文件,普通的文本文件里面的数据是没有任何格式规范的,用户可以随意编写。
但是在java项目的开发中,我们还会遇到一些特殊的文本文件,这些文件是有一些格式要求的,方便程序对文件中的数据进行处理。
比如,后面我们会用到两种特殊的文本文件,一种是properties文件,还有一种是xml文件。
- 后缀为.properties的文件,称之为属性文件,它可以很方便的存储一些类似于键值对的数据。经常当做软件的配置文件使用。
- 而xml文件能够表示更加复杂的数据关系,比如要表示多个用户的用户名、密码、家乡、性别等。在后面,也经常当做软件的配置文件使用。
一般地,对于这些特殊文件,我们需要掌握他们的特点和作用,并且学习使用程序读取它们里面的数据并用程序把数据存储到这些文件中。
Properties属性文件概述
要掌握属性文件的格式如下:
- 属性文件后缀以
.properties
结尾 - 属性文件里面的每一行都是一个键值对,键和值中间用=隔开。比如:
admin=123456
#
表示这样是注释信息,是用来解释这一行配置是什么意思。- 每一行末尾不要习惯性加分号,以及空格等字符;不然会把分号,空格会当做值的一部分。
- 键不能重复,值可以重复。
如下图所示:
Properties属性文件读取
如何读取属性文件中的数据呢?首先需要学习以下Properties类。
1.Properties是什么?
Properties是Map接口下面的一个实现类,所以Properties也是一种双列集合,用来存储键值对。 但是一般不会把它当做集合来使用。再一次体现了java万物皆对象的特点
2.Properties核心作用?
Properties类的对象,用来表示属性文件,可以用来读取属性文件中的键值对。
使用Properties读取属性文件中的键值对,需要用到的方法如下。
用Properties读取属性文件的步骤如下
1、创建一个Properties的对象出来(键值对集合,空容器)
2、调用load(字符输入流/字节输入流)方法,开始加载属性文件中的键值对数据到properties对象中去
3、调用getProperty(键)方法,根据键取值
代码如下:
package com.实验Properties;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;
public class test_properties {
public static void main(String[] args) throws IOException {
// 1、创建一个Properties的对象出来(键值对集合,空容器)
Properties properties = new Properties();
System.out.println(properties);
// 2、开始加载属性文件中的键值对数据到properties对象中去
properties.load(new FileReader("E:\\src\\application.properties"));
System.out.println(properties);
// 3、根据键取值
System.out.println(properties.getProperty("spring.datasource.driver-class-name"));
// 4、遍历全部的键和值。
//获取键的集合
Set<String> keys = properties.stringPropertyNames();
for(String key: keys){
String value = properties.getProperty(key);
System.out.println(key+"---->"+value);
}
System.out.println("通过lambda表达式遍历~~~~");
properties.forEach((k,v)->{
System.out.println(k+"----->"+v);
});
}
}
Properties属性文件写操作
使用Properties往属性文件中写键值对,需要用到的方法如下
往Properties属性文件中写键值对的步骤如下
1、先准备一个.properties属性文件,按照格式写几个键值对
1、创建Properties对象出来,
2、调用setProperty存储一些键值对数据
3、调用store(字符输出流/字节输出流, 注释),将Properties集合中的键和值写到文件中
注意:第二个参数是注释,必须得加;
代码如下:
package com.实验Properties;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
public class test_properties2 {
public static void main(String[] args) throws IOException {
Properties properties = new Properties();
properties.setProperty("ah","xiaoming");
properties.setProperty("province","hubeisheng");
properties.setProperty("country","china");
properties.store(new FileWriter("E:\\src\\application2.properties"),"test ");
}
}
运行上面的代码,application2.properties配置文件打开效果如下图所示: