使用J2SE API读取Properties文件的六种方法
1。使用java.util.Properties类的load()方法
示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));
Properties p = new Properties();
p.load(in);
eg.
public Connection getConnectionProp() {
Properties prop = new Properties();
try {
prop.load(this.getClass().getClassLoader().getResourceAsStream(
"DBConfig.properties"));
Class.forName(prop.getProperty("driver"));
return DriverManager.getConnection(prop.getProperty("url"), prop
.getProperty("username"), prop.getProperty("password"));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
2。使用java.util.ResourceBundle类的getBundle()方法
示例: ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());
这里name所表示的文件应该在/WEB-INF/classes目录,从web项目中获取properties文件采用 此方法。
3。使用java.util.PropertyResourceBundle类的构造函数
示例: InputStream in = new BufferedInputStream(new FileInputStream(name));
ResourceBundle rb = new PropertyResourceBundle(in);
4。使用class变量的getResourceAsStream()方法
示例: InputStream in = JProperties.class.getResourceAsStream(name);
Properties p = new Properties();
p.load(in);
这里的name应该与JProperties类处于相同的目录下
5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
示例: InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name);
Properties p = new Properties();
p.load(in);
这里的name应该与JProperties类处于相同的目录下,用了ClassLoader.getResourceAsStream(String)方法,其实Class.getResourceAsStream(String)也是调用它。与上面的方式实质上一样。
6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
示例: InputStream in = ClassLoader.getSystemResourceAsStream(name);
Properties p = new Properties();
p.load(in);
这里name所表示的文件应该在/WEB-INF/classes目录,从web项目中获取properties文件采用 此方法。
补充
1。Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
示例:InputStream in = context.getResourceAsStream(path);
Properties p = new Properties();
p.load(in);
2。要想知道哪个Servlet的Resource的路径,其实你先测试一下就行了:
getResource("/").getPath()看看在哪儿,然后从那儿开始算起