2013-04-28 298 views
0

通常,Java属性文件存储键值对。但是,只将字符串列表作为属性存储在外部属性文件中的最佳方式是什么?属性文件中的属性列表

+4

你的意思是只有键和没有值? – Apurv 2013-04-28 06:35:55

回答

0

您可以在一个值中存储逗号分隔列表,并使用split(“\ s *,\ s *”)方法将它们分开。

key=value1, value2, value3 

或者如果您只需要的是值列表,则属性不适用,因为不会保留键的顺序。你可以有一个文本文件,每个值一行

value1 
value2 
value3 

您可以使用一个BufferedReader这样

List<String> lines = new ArrayList<>(); 
try(BufferedReader br = new BufferedReader(new FileReader(file))) { 
    for(String line; (line = br.readLine()) != null;) 
     lines.add(line); 
} 
+0

为什么连这个?如果OP只需要密钥,那么纯文本CSV文件将起作用 – Apurv 2013-04-28 06:37:08

+0

@Apurv好点。如果你想要一个“钥匙”列表,那么属性不好,因为它不保持秩序。 – 2013-04-28 06:43:31

4

如果你只是想存储的字符串列表,那么你不需要属性文件。

  1. 您可以将密钥以逗号分隔存储在文本文件中。当你想访问它们时,只需读取完整的文件并使用逗号分割即可

  2. 另一种选择是您可以将所有密钥存储在文本文件中,以便每个密钥位于同一行上。然后,您可以使用FileUtils.readLines(File file)获取所有密钥的列表。

  3. 如果仍然想要将它们存储在属性文件中,那么您只能存储密钥,而没有任何值。然后使用propertyNames获取所有密钥的列表。