转自:
http://longdechuanren.iteye.com/blog/1786419
之前对于JAVA读取properties文件的路径一直模棱两可,晚上百度上查了一下资料然后自己做实验验证了一下,当前做一下记录,与写的不对的欢迎大家留言指正
当前实验工程的目录如上图所示,如果我们要读取的properties文件是放到classpath目录下(即放到src目录下,eclipse会将其自动编译到bin\目录下)这个是比较容易的看下面的代码:
package org.guo.leaning.path;
import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
public class ReadFile {
public static void main(String[] args) throws Exception {
System.err.println(ReadFile.class.getResource(""));
System.err.println(ReadFile.class.getResource("/"));
}
private static String getPropsValue(String key) throws Exception {
InputStream inputStream = ReadFile.class.getClassLoader().getResourceAsStream("11.properties");
props.load(inputStream);
return props.getProperty(key);
}
//上述的情况都是在properties文件在classpath的情况下,使用的,如果我有个个properties文件不再classpath目录下,比如:我在项目根路径下建立了一个文件夹config里面有个11.proerties文件,那么我们该如何加载呢,此时我们就不能使用classLoader的相关方法了,因为他只能找classpath路径下的:
private static String getPropsValue(String key) throws Exception {
Properties props = new Properties();
File f = new File("E:\\workspace\\practice\\config\\11.properties");
props.load(new FileInputStream(f));
props.load(inputStream);
return props.getProperty(key);
}
最后一个文件夹会不会包含在classpath路径下,主要在应用的.classpath文件下配置 如下:
< ?xml version="1.0" encoding="UTF-8"? >
< classpath >
< classpathentry kind="src" path="src" />
< classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER" />
< classpathentry kind="output" path="bin" />
</ classpath >
之前对于JAVA读取properties文件的路径一直模棱两可,晚上百度上查了一下资料然后自己做实验验证了一下,当前做一下记录,与写的不对的欢迎大家留言指正
当前实验工程的目录如上图所示,如果我们要读取的properties文件是放到classpath目录下(即放到src目录下,eclipse会将其自动编译到bin\目录下)这个是比较容易的看下面的代码:
package org.guo.leaning.path;
import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
public class ReadFile {
System.err.println(ReadFile.class.getResource(""));
private static String getPropsValue(String key) throws Exception {
InputStream inputStream = ReadFile.class.getClassLoader().getResourceAsStream("11.properties");
}
//上述的情况都是在properties文件在classpath的情况下,使用的,如果我有个个properties文件不再classpath目录下,比如:我在项目根路径下建立了一个文件夹config里面有个11.proerties文件,那么我们该如何加载呢,此时我们就不能使用classLoader的相关方法了,因为他只能找classpath路径下的:
private static String getPropsValue(String key) throws Exception {
最后一个文件夹会不会包含在classpath路径下,主要在应用的.classpath文件下配置 如下:
< ?xml version="1.0" encoding="UTF-8"? >
< classpath >
</ classpath >