方式一:使用java.lang.Class
注意:Class和ClassLoader方法都提供了getResource()和getResourceAsStream()来加载文件,前者返回URL后者返回InputStream。
xxx.class.getResource("").getPath:
获取xxx类经编译后的xxx.class的路径
xxx.class.getResource("fileName").getPath:
如果fileName不以 "/" 开头,那就读取相对路径;
如果fileName以 "/" 开头,则读取绝对路径。
getResourceAsStream()同理。
代码如下:
public void getFileUsingClass(String strFile) throws Exception {
String key = "path";
Properties properties = new Properties();
URL resource = getClass().getResource(strFile);
File file = new File(resource.getFile());
properties.load(new FileReader(file));
System.out.println(properties.getProperty(key));
}
方式二:使用java.lang.ClassLoader
注意:Class和ClassLoader方法都提供了getResource()和getResourceAsStream()来加载文件,前者返回URL后者返回InputStream。
classLoader方法时fileName不能以"/"开头
xxx.class.getClassLoader().getResource("").getPath:
获取src资源文件编译后的路径(即classes路径)
xxx.class.getClassLoader().getResource("fileName").getPath:
获取classes路径下的文件的路径