配置文件(properties,xml)
配置文件可以解决我们在编程中遇到的硬编码问题,那么什么是硬编码呢?
硬编码:将一些经常调用修改的数据代码直接写死在了java源代码程序中,就会产生硬编码问题。(一般情况下,通过配置文件来解决硬编码问题,在IDEA中,一般将配置文件放在resource文件之中)
resource文件夹的创建
此时,文件夹还不能用,还需进一步操作:
至此,resource文件夹创建成功,如下图,文件夹右下角会出现黄色的几道杠。
properties文件
文件特点
- 文件后缀名为(.properties)
- 对应的是java中Properties集合,(Map集合的实现类的一种)
- 存储方式为键值对的方式,并且默认为String类型(书写properties文件时,可以不用指定数据类型,也不用使用双引号)
- 千万注意不能出现多余的空格。
(创建的properties文件夹样式如下:)
properties文件的解析
1.传统方式
#这是我的配置文件信息
username=小屁
password=00123
下面是传统方法解析properties类型配置文件的过程步骤:
package cn.wolfcode._01_.Demo;
import org.junit.Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
public class getPropertiesTest {
@Test
public void getPropertiesValue() {
FileInputStream fIS = null;
try {
//①使用绝对路径利用字符输入流先读取到指定的配置文件
fIS = new FileInputStream(new File("E:\\JAVAcoldwolf\\idea program\\JavaWeb.Day002\\resource\\User.properties"));
//②将流资源中的数据转换成properties集合数据
//首先创建一个properties集合对象
Properties properties = new Properties();
//使用load方法将数据进行转换
properties.load(fIS);
//获取指定key的value值(方法名:getProperty("string 类型的key值"))
String username = properties.getProperty("username");
String password = properties.getProperty("password");
System.out.println(username + "\n" + password);
} catch (Exception e) {
e.printStackTrace();
//使用到流一定记得关闭流资源
} finally {
//做流资源非空判断
try {
if (fIS != null) {
fIS.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
运行结果:
2.现代工艺(通过类加载器获取指定流资源)
类加载器(classloader):jvm中专门用来解析指定类的加载工具。
获取类加载器的方法:
- 使