读取具有特定字符串的java中的属性文件

时间:2014-05-07 06:31:01

标签: java properties-file

我正在使用一个.properties文件。我有以下配置参数:

Appnameweb = app1
Appnamemobile = app2
Appnameweb1 = app3

可以有许多以用户提供的Appname开头的配置参数。 如何读取所有属性文件参数,其中key将包含特定的String,如本例中的Appname?

4 个答案:

答案 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,那么你可以就此做点什么。

  1. 使用Set<Object>方法获取Properties#keySet()个密钥。
  2. 启动for循环,对于密钥集中的每个对象,通过强制转换或使用Object方法将String转换为toString()
  3. 使用转换后的String,检查它是否包含公共字符串&#34; Appname&#34;根据您的需要使用String#contains()String#startsWith()方法。
  4. 如果是,请使用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("");
            }
        }