java web读取属性文件的几种方式总结
读取Properties文件读取,路径,空格,中文问题读取Properties文件和路径问题
? 如:读取jdbc.properties文件
路径
读取的类位于:package com.query.util;
getClass().getResourceAsStream(jdbc.properties)
????? 则jdbc.properties描述的路径是相对于这个类所在包的根路径而言的,
?? 即为相对于文件夹util所在目录开始,
getClass().getResourceAsStream(/jdbc.properties) 以/开始
?? 则/jdbc.properties描述的路径是相对于这各类当前的文件夹而言的,
?? 即为相对于文件夹com所在目录开始,
读取的方法
1。使用java.util.Properties类的load()方法
示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));
?????? Properties p = new Properties();
?????? p.load(in);
2。使用java.util.ResourceBundle类的getBundle()方法
示例: ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());
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);
5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
示例: InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name);
?????? Properties p = new Properties();
?????? p.load(in);
6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
示例: InputStream in = ClassLoader.getSystemResourceAsStream(name);
?????? Properties p = new Properties();
?????? p.load(in);
补充
Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
示例:InputStream in = context.getResourceAsStream(path);
?????? Properties p = new Properties();
?????? p.load(in);
一般常使用第五种
空格
//获得文件路径,并对路径进行处理
private static String getUrl()
{
? String path = configLoad.class.getResource("config.properties").toString();
? path = path.replace("%20", " "); //引号中有一个半角的空格
? path = path.substring(6);
? return path;
}
}
那么这里返回了一个Properties类型的值,在这里就可以使用getProperty()来获得值
如:Properties pro = configLoad.getConfig();
String http = pro.getProperty("url").toString();