private static void init() {
try {
if (pro == null) {
synchronized (Person.class) {
if (pro == null) {
pro = new Properties();
InputStream is = Person.class
.getResourceAsStream("config.properties");
pro.load(is);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
开发项目时,经常把一些参数存入Properties文件,以增加程序的灵活性。我们可以通过以下六种方法读取配置参数(注意:spring对properties的读取也有很好的集成):
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);
Spring使用Properties配置文件
Spring读取properties配置文件的三种方式