如何在 java 中创建具有一对多关系的属性?

How create in java a properties with one to many relationship?

我有一个文件,我在其中保存了一个键和一些条目(一对多关系)。
我需要从这个文件中提取按键搜索的值。
我刚找到一个实用程序 (java.util.Properties) 来处理 Java.
中的属性文件 它适用于属性文件。
但它 return 第一次出现搜索的键。
由于存在于属性文件中,我希望已经存在一个允许多个结果的版本。

是否存在 return 研究密钥的字符串数组的解决方案?

属性由哈希表支持,因此键必须是唯一的。 因此,如果你想坚持使用同一键的多个实例,你可以自己实现解析(如果你不太依赖 Properties 管理的额外功能):

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

public class FileInput {
    Properties porp;

    public static Map<String, List<String>> loadProperties(String file) throws IOException
    {
        HashMap<String, List<String>> multiMap = new HashMap<>();

        try (BufferedReader br = new BufferedReader(new FileReader(file))) {
            String line = null;
            while ((line = br.readLine()) != null) {
                if (line.startsWith("#"))
                    continue; // skip comment lines
                String[] parts = line.split("=");
                multiMap.computeIfAbsent(parts[0].trim(), k -> new ArrayList<String>()).add(parts[1].trim());
            }
        }
        return multiMap;
    }
    
    public static void main(String[] args) throws IOException {
        Map<String,List<String>> result=loadProperties("myproperties.properties");
    }
}

更新:改进了异常处理(有效评论@rzwitsersloot)。我更喜欢抛出异常,以便调用者可以决定在属性文件丢失时要做什么。