原文:http://blog.163.com/cdf_2008/blog/static/76064778200954101651458/
读取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();
中文
在java jdk 的bin下找到native2ascii.exe 点击输入中文得到asc码