如何在Java中迭代属性文件中的值

时间:2011-07-22 17:46:53

标签: java properties iterator arraylist delimited-text

所以我想知道是否有人知道如何从密钥中读取多个值,用逗号分隔它们并将它们存储到java中属性文件的arraylist中?


我有一个属性文件,其中包含:

  

currentProposalsLocation = C:/ Documents and Settings / Intern   项目/提取的项目
  keywordsList =“A,B,C,D,E,F”


这是我加载属性文件的代码:

    static String proposalsDirectory;
    static ArrayList<String> keywordsList = new ArrayList<String>();
    private static final String PROP_FILE="C:/Documents and Settings/Intern Project/ipConfig.properties";

public static void readPropertiesFile()
{
     try
    {
         InputStream is = XMLTagParser.class.getResourceAsStream(PROP_FILE);
         Properties prop = new Properties();
         prop.load(is);
         proposalsDirectory = prop.getProperty("currentProposalsLocation");
         //?????What to do here????
         is.close();
    }
    catch(Exception e)
    {
         System.out.println("Failed to read from " + PROP_FILE + " file.");
    }
}

如果有人能帮助我,我真的很感激。

4 个答案:

答案 0 :(得分:8)

keywordsList.addAll(Arrays.asList(prop.getProperty("keywordsList").split(","));

应该工作。

答案 1 :(得分:3)

Properties扩展HashTable实施Map,因此您可以使用Set<String>将所有密钥作为keySet()获取。

任何属性值都是String。您可以在给定分隔符的情况下拆分字符串。

如果您正在询问如何将该对象添加回属性,答案是“您不能”。 Properties使用String键和String值。如果您想要多地图行为(String键,List值),则必须实现自己的行为。

答案 2 :(得分:2)

使用Enumerator循环浏览Properties

答案 3 :(得分:1)

只是要添加另一个选项,您可以在XML文件中设置属性,使用Spring Dependency Injection将它们加载到Java代码中的对象中,然后随意操作它们。

请注意,使用依赖注入,您可以直接在XML中将该列表设置为List,这样您甚至不必完成将逗号分隔的String转换为List的所有繁忙工作。