目前在我的Java
应用程序中,我使用以下Class
来检索properties
文件(application.properties)中的值:
public class MyProperties {
private static Properties defaultProps = new Properties();
static {
try {
java.io.InputStream in= MyProperties.class.getClassLoader().getResourceAsStream("application.properties");
defaultProps.load(in);
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static String getProperty(String key) {
return defaultProps.getProperty(key);
}
}
使用int
类实例化MyProperties
的示例:
int maxNumberOfPeople = Integer.parseInt(MyProperties.getProperty("maximumPeople"));
我想更改此类以便阅读XML
属性文件,而不是例如application.Properties。
我该怎么做,仍然能够使用MyProperties类来实例化值?
答案 0 :(得分:2)
阅读Properties.loadFromXML(...)
方法的javadoc。
方法摘要:
将指定输入流上的XML文档表示的所有属性加载到此属性表中。
Properties
javadoc包含XML文档(文件)的DTD。
最好使用try-with-resources这样编写你的加载器:
try (java.io.InputStream in = MyProperties.class.getClassLoader().
getResourceAsStream("application.properties")) {
// load properties
} catch (Exception e) {
e.printStackTrace();
}
此外,抓住并压制像这样的例外是一个坏主意。
Exception
。最后,您可能不应该在静态初始化程序中加载属性,因为这使您无法处理可能出现的任何异常。