(一)用Class类加载资源文件
通过调用Class类的getResourceAsStream方法来加载资源文件:
public InputStream getResourceAsStream(String pathToConfigFile);
该方法接收一个String类型的参数(pathToConfigFile)来表示资源文件的地址,如果加载成功,则返回该资源文件的输入流(InputStream),如果失败,则返回null。重要的是,在传入pathToConfigFile参数时,有两种方式,第一种方式为绝对定位方式,即pathToConfigFile以"/"开头,此时Java以classpath为根目录,直接加上pathToConfigFile来搜索资源文件。第二种方式为相对定位方式,即pathToConfigFile不以"/"开头,此时资源文件的全路径应该为:调用getResourceAsStream方法的类的package路径加上pathToConfigFile。(在将package转为目录时将"."变成"/")
举个例子,在IntelliJ Idea中创建一个java工程,目录结构如下:
该工程里有两个resources文件夹,一个位于davenkin文件夹下,一个直接位于src文件夹下。第一个resources文件夹下有一个config.properties文件,其内容为:
name = ConfigUnderDavenkin
第二个resources文件夹下也有一个config.properties文件,其内容为:
name = ConfigUnderSrc
属性文件指properties文件
在IDE里新建一个file后缀改为.properties就创建了一个属性文件
属性文件结构:
test1=aaa
test2=bbb
Ps:中文的话请使用unicode表示
有很多种读取属性文件的方式,我举例其中的一种:
//构造器内的路径为src文件夹下的*.properties文件
//假设在src文件夹下放置了属性文件a.properties
ResourceBundle rb = ResourceBundle.getBundle("a");
String str = rb.getString("test1");
此时str的值为属性文件中test1对应的值
properties文件 嘛?
后缀名为.properties的文件