我正在使用一个.properties
文件。我有以下配置参数:
Appnameweb = app1
Appnamemobile = app2
Appnameweb1 = app3
可以有许多以用户提供的Appname开头的配置参数。 如何读取所有属性文件参数,其中key将包含特定的String,如本例中的Appname?
答案 0 :(得分:12)
一般来看看java.util.Properties
的javadoc。为了让您的生活更轻松,我将为您提供此代码段,以帮助您开始:
Properties props = new Properties();
props.load(new FileInputStream("myfile.properties"));
for (Enumeration<?> e = props.propertyNames(); e.hasMoreElements(); ) {
String name = (String)e.nextElement();
String value = props.getProperty(name);
// now you have name and value
if (name.startsWith("Appname")) {
// this is the app name. Write yor code here
}
}
答案 1 :(得分:2)
Properties props = new Properties();
props.load(new FileInputStream("file.properties"));
Enumeration<String> e = props.getNames();
List<String> values = new ArrayList<String>();
while(e.hasMoreElements()) {
String param = (String) e.nextElement();
if(param != null && param.contains("Appname")) {
values.add(props.getProperty(param));
}
}
答案 2 :(得分:0)
如果你正在使用java Properties
,那么你可以就此做点什么。
Set<Object>
方法获取Properties#keySet()
个密钥。for
循环,对于密钥集中的每个对象,通过强制转换或使用Object
方法将String
转换为toString()
。String#contains()
或String#startsWith()
方法。Properties#getProperty()
方法获取该密钥的值,并使用该值执行任何操作。答案 3 :(得分:0)
Properties prop = new Properties();
try {
prop.load(this.getClass().getClassLoader().getResourceAsStream("filename.properties"));
Set<Object> set = prop.keySet();
for(Object obj : set){
String str = obj.toString();
if(str.startsWith("Appname")) {
//System.out.println("");
}
}