配置文件主要代码:
public class Tools extends Properties{
private static Properties p=new Properties();
//读取资源文件的类
static{
try {
p.load(Tools.class.getClassLoader().getResourceAsStream(“sys.properties”));
//加载资源文件
} catch (IOException e) {
e.printStackTrace();
}
}
//根据key得到value的值
public static String getValue(String key){
return
p.getProperty(key);
}
}
类似这种:
代码是没有错的,只是文件路径的问题。
这个是properties文件路径问题,Java寻找文件的相对路径是相对于某个执行的Class路径而言的,比如你的类文件放到classes目录下,那么Java执行下面语句时就到classes目录下找。
Java代码
in =
getClass().getResourceAsStream("jdbc.properties
");
prop.load(in);
这个时候jdbc.properties文件应该在classes目录下。
如果Java代码为:
Java代码
in =
getClass().getResourceAsStream( "conf/jdbc.properties
");
prop.load(in);
jdbc.properties文件就应该放在classes/conf/目录下。
另外:流要记得关闭。is.close()
java的properties文件需要放到classpath下面,这样程序才能读取到,有关classpath实际上就是java类或者库的存放路径,在java工程中,properties放到
class文件一块。在web应用中,最简单的方法是放到web应用的WEB-
INF\classes目录下即可,也可以放在其他文件夹下面,这时候需要在设置classpath环境变量的
时候,将这个文件夹路径加到
classpath变量中,这样也也可以读取到。在此,你需要对classpath有个深刻理解,classpath绝非系统中刻意设定的那个系统环境变
量,WEB-INF\classes其实也是,java工程的class文件目录也是。