所以我想知道是否有人知道如何从密钥中读取多个值,用逗号分隔它们并将它们存储到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.");
}
}
如果有人能帮助我,我真的很感激。
答案 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的所有繁忙工作。