Java读取项目的资源文件,首先要做的就是访问到这个文件,访问文件的路径我觉得有两种做法,第一种是通过类加载路径来实现,这种方法可以访问sourcefolder下面的文件
第二种方法是通过项目的根目录来访问文件,这样可以获取到非sourcefolder目录底下的文件。接下来贴上代码吧。
1.项目文件目录结构展示
2.然后是调用代码以及说明
package com.wzxy.my.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class test1 {
/**
* 读取resources文件夹下面的内容,通过绝对路径来读取文件,绝对路径从类加载器开始
*/
public void testGetResource(){
Properties prop = new Properties();
InputStream in = Object.class.getResourceAsStream("/resources/test1.properties");
try {
prop.load(in);
System.out.println("开始加载文件");
System.out.println(prop.getProperty("myname").trim());
System.out.println(prop.getProperty("myage").trim());
in.close();
} catch (IOException e) {
e.printStackTrace();
try {
in.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
/**
* 获取不是sourcefolder文件夹下的文件
* 1.Object.class.getResourceAsStream("/res/test2.properties");这样是获取不到的,
* 因为文件没有在类加载器文件底下。
* 2.如果该文件位于同样是sourcefolder的另一个文件夹地下,也是可以这样访问的,
* 也就是说只要是位于sourcefolder底下都可以通过类加载器路径加载
* 3.跟调用类位于同一个目录底下的文件可以直接读取 InputStream in = test1.class.getResourceAsStream("test4.properties");
* 4.读取非source文件夹底下的文件可以采用in = new FileInputStream(new File("res/test2.properties"));
*
*/
public void testgetresource2(){
Properties prop = new Properties();
FileInputStream in;
try {
in = new FileInputStream(new File("WebRoot/res3/test5.properties"));
try {
prop.load(in);
System.out.println("开始加载文件");
System.out.println(prop.getProperty("myname").trim());
System.out.println(prop.getProperty("myage").trim());
in.close();
} catch (IOException e) {
e.printStackTrace();
try {
in.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
} catch (FileNotFoundException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
}
}
好了,就这些了。