如果文件中存在重复的键值对,如何读取属性文件?

use*_*783 6 java collections duplicates properties-file

我正在使用load()属性类加载我的属性文件.我能够使用set,hashmap,treeset,enumeration读取属性类的键值对,但它不会检索重复对.重复对只检索一次.

Mar*_*ark 7

Apache Commons Configuration中的PropertiesConfiguration支持使用相同的密钥加载具有多个条目的属性文件.

使用getStringArray(key)方法或getList(key)方法访问指定键的所有值.

  • 更新链接:http://commons.apache.org/proper/commons-configuration/apidocs/org/apache/commons/configuration2/PropertiesConfiguration.html (4认同)

Nis*_*ara 6

属性文件设置键值对.所有键都是唯一的,因此它不会捕获重复的对.相反,它将获取最新的映射对.例如 :

样本文件:

a=1
b=2
c=3
d=4
a=10
c=7
Run Code Online (Sandbox Code Playgroud)

属性类将返回最新的对,即

a=10
b=2
c=7
d=4
Run Code Online (Sandbox Code Playgroud)

仍然如果您的要求是找到所有对是否重复,请使用以下使用Scanner类和两个arraylist对象的代码.

        ArrayList k = new ArrayList();
        ArrayList v = new ArrayList();
        Scanner scan = new Scanner(new File("E:\\abc.properties"));
        while(scan.hasNextLine()) {
            //System.out.println(scan.nextLine());
            String split[] = scan.nextLine().trim().split("=");
            if(split.length == 2) {
            k.add(split[0]);
            v.add(split[1]);
            System.out.println("pair " + split[0] + ":" + split[1]);
            }
            //System.out.println("a");*/
        }
Run Code Online (Sandbox Code Playgroud)