Class.getResourceAsStreame 类文件读取配置文件信息
Class.getResourceAsStreame 类文件读取配置文件信息
一、为什么要读取配置信息
1、一般需要经常变动的文件信息,需要将他们放到配置文件中,这样做是为了在更改信息的时候比在java代码中改变方便。比如JDBC链接数据库的URL地址和用户名、密码。需要配置到配置文件中方便修改
二、如何读取配置文件中的信息
Class.getResourceAsStream() 会指定要加载的资源路径与当前类所在包的路径一致。
例如:写了一个MyTest类在包com.test.mycode 下,那么MyTest.class.getResourceAsStream("name") 会在com.test.mycode包下
查找响应的资源。
如果这个name是以 '/' 开头的,那么就会从classpath的根路径下开始查找。
ClassLoader.getResourceAsStream() 无论要查找的资源前面是否带'/' 都会从classpath的根路径下查找。
所以: MyTest.getClassLoader().getResourceAsStream("name") 和
MyTest.getClassLoader().getResourceAsStream("name") 的效果是一样的。
三、读取同类下的配置文件实例
(这种方式一般用在读取同类下目录的文件,如果是不在同类路径下,即跨路径读取需要用到类加载器方式)
1、实例介绍:ReadFile类下面创建一个配置文件 prepertie文件,ReadFile并且读取这个配置文件。
2、实现读取配置文件实例
-
package com.test.test;
-
-
import java.io.IOException;
-
import java.io.InputStream;
-
import java.net.URL;
-
-
import org.junit.Test;
-
-
public class ReadFile {
-
//读取同目录下下的文件 读取IO字节码
-
@Test
-
public void readSelf() throws IOException{
-
//1、直接使用本类字节码读取本类文件
-
InputStream in = ReadFile.class.getResourceAsStream("jdbc.prepertie");
-
//2、创建一个数组,遍历读取到的文件
-
byte[] by = new byte[in.available()];
-
int len = in.read(by);
-
String s = new String(by,0,len);
-
System.out.println(s);
-
-
}
-
-
//读取同目录下下的文件 读取URL路径
-
@Test
-
public void readURL(){
-
//1、通过本类读取本类目录下的文件目录
-
URL url = ReadFile.class.getResource("jdbc.prepertie");
-
//2、获取url路径
-
String path = url.getPath();
-
System.out.println(path);
-
}
-
}
3、运行结果
文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。
原文链接:brucelong.blog.csdn.net/article/details/77923062
- 点赞
- 收藏
- 关注作者
评论(0)