黑马程序员技术交流社区
标题:
两种读取properties方法
[打印本页]
作者:
张森
时间:
2013-1-5 17:42
标题:
两种读取properties方法
本帖最后由 张向辉 于 2013-1-16 11:30 编辑
两种常见的方式 ,第一种是利用
ResourceBundle,较为方便,一个是利用类加载器
/**
* 获取properties配置文件中的内容方法:
*/
public class ReadProperties {
// 方法一
public void One() {
ResourceBundle bundle = ResourceBundle.getBundle("test");
// 获得资源包
Enumeration<String> allName = bundle.getKeys();
// 通过资源包拿到所有的名称
// 遍历
while (allName.hasMoreElements()) {
String name = (String) allName.nextElement();
// 获取每一个名称
String value = bundle.getString(name);
// 利用已得到的名称通过资源包获得相应的值
System.out.println(name + "=" + value);
}
}
// 方法二
public void Two() throws Exception {
InputStream in = ReadProperties.class.getClassLoader()
.getResourceAsStream("test.properties");
// 获得类加载器,然后把文件作为一个流获取
Properties prop = new Properties();
prop.load(in);
// 将Properties和流关联
Enumeration<?> allName = prop.propertyNames();
// 获取所有的名称
while (allName.hasMoreElements()) {
String name = (String) allName.nextElement();
// 获得每一个名称
String value = (String) prop.get(name);
// 利用已得到的名称通过Properties对象获得相应的值
System.out.println(name + "=" + value);
}
in.close();
}
}
作者:
舒远
时间:
2013-1-5 20:12
学习了,受教
作者:
冯超
时间:
2013-1-5 21:04
我说一个可以用传统方法来获取
//properties代码 死代码,可以牢记:
Properties pro = new Properties();
pro.load(in);
pro.getProperty(name);
private void proMethod(InputStream in) throws IOException {
Properties pro = new Properties();
pro.load(in);
//获取资源
String url = pro.getProperty("url");
String username = pro.getProperty("username");
String password = pro.getProperty("password");
System.out.println("Current read present resource is:");
System.out.println(url);
System.out.println(username + ":" + password);
}
复制代码
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties");
String filename = path.substring(path.lastIndexOf("\\") + 1);/*path.lastIndexOf("\\") return 最后一个\所在的索引 path.substring(path.lastIndexOf("\\"+1) return该字符串索引后的子字符串*/
System.out.println("获取的文件资源为:" + filename);
FileInputStream in = new FileInputStream(path);
proMethod(in);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2