Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于键值有选择地从属性文件加载属性_Java_Properties_Namespaces - Fatal编程技术网

Java 基于键值有选择地从属性文件加载属性

Java 基于键值有选择地从属性文件加载属性,java,properties,namespaces,Java,Properties,Namespaces,我有一个属性文件,它的值如下 xxx.key1 = value1 xxx.key2 = value2 yyy.key3 = value3 yyy.key4 = value4 'xxx'和'yyy'可以视为两个不同的名称空间。 如何加载属性文件,以便只能加载'xxx'或'yyy'的属性?只需读取文件的每一行,并仅回拉与该命名空间匹配的值 Scanner scan = new Scanner(new File("yourfilepath")); Map<String,String>

我有一个属性文件,它的值如下

xxx.key1 = value1
xxx.key2 = value2

yyy.key3 = value3
yyy.key4 = value4
'xxx'
'yyy'
可以视为两个不同的名称空间。
如何加载属性文件,以便只能加载
'xxx'
'yyy'
的属性?

只需读取文件的每一行,并仅回拉与该命名空间匹配的值

Scanner scan = new Scanner(new File("yourfilepath"));
Map<String,String> map = new HashMap<String, String>();
String value = "";
while(scan.hasNext())
{
    value = scan.nextLine();
    if(value.indexOf("xxx") != -1)
    {
        map.put(value.split(" = ")[0], value.split(" = ")[1]);
    }
}

//now map has your key value pairs
Scanner scan=新扫描仪(新文件(“您的文件路径”);
Map Map=newhashmap();
字符串值=”;
while(scan.hasNext())
{
value=scan.nextLine();
if(value.indexOf(“xxx”)!=-1)
{
map.put(value.split(“”[0],value.split(“”[1]);
}
}
//现在map有了键值对
如果你的财产是这样的

xxx.key1=值
然后在拆分(“=”)(无空格)

为什么不使用两个分开的属性文件?我们希望将用户必须配置的文件数保持为1。另一方面,配置分散在多个位置