用户登录
用户注册

分享至

带有列表作为单个键值的属性文件

  • 作者: 屌细如丝
  • 来源: 51数据库
  • 2022-10-26

问题描述

对于我的程序,我想从属性文件中读取一个键以及该键的相关值列表.
最近我也在这样尝试

For my program I want to read a key from a properties file and an associated List of values for the key.
Recently I was trying like that

public static Map<String,List<String>>categoryMap = new Hashtable<String, List<String>>();


    Properties prop = new Properties();


    try {

        prop2.load(new FileInputStream(/displayCategerization.properties));
        Set<Object> keys = prop.keySet();
        List<String> categoryList = new ArrayList<String>();
        for (Object key : keys) {
            categoryList.add((String)prop2.get(key));
            LogDisplayService.categoryMap.put((String)key,categoryList);
        }
        System.out.println(categoryList);
        System.out.println("Category Map :"+LogDisplayService.categoryMap);

        keys = null;
        prop = null;

    } catch (Throwable e) {
        e.printStackTrace();
    }

我的属性文件如下 -

and my properties file is like below -

A=APPLE
A=ALPHABET
A=ANT
B=BAT
B=BALL
B=BUS

我希望密钥 A 应该有一个列表,其中包含 [APPLE, ALPHABET,ANT] 和 B 包含 [BAT,BALL,BUS].
所以地图应该是这样的 {A=[APPLE, ALPHABET,ANT], B=[BAT,BALL,BUS]} 但我得到
{A=[ANT], B=[BUS]}
我在互联网上搜索了这种方法,但一无所获.我希望应该有办法.有什么帮助吗?

I want for key A there should be a list which contain [APPLE, ALPHABET,ANT] and B contain [BAT,BALL,BUS].
So Map should be like this {A=[APPLE, ALPHABET,ANT], B=[BAT,BALL,BUS]} but I get
{A=[ANT], B=[BUS]}
I searched on the internet for such a way but found nothing. I wish there should be a way. Any help?

推荐答案

尝试将属性写成逗号分隔的列表,然后在加载属性文件后拆分值.例如

Try writing the properties as a comma separated list, then split the value after the properties file is loaded. For example

a=one,two,three
b=nine,ten,fourteen

您也可以使用 org.apache.commons.configuration 并使用 AbstractConfiguration.setListDelimiter(char) 方法如果您在值中使用逗号.

You can also use org.apache.commons.configuration and change the value delimiter using the AbstractConfiguration.setListDelimiter(char) method if you're using comma in your values.

软件
前端设计
程序设计
Java相关