我正在使用load()
属性类加载我的属性文件。我能够使用set,hashmap,treeset,enumeration读取属性类的键值对,但它不能检索重复项对。重复对只能检索一次。
答案 0 :(得分:7)
PropertiesConfiguration支持使用相同的密钥加载具有多个条目的属性文件。
使用getStringArray(key)方法或getList(key)方法访问指定键的所有值。
答案 1 :(得分:6)
属性文件设置键值对。所有键都是唯一的,因此它不会捕获重复的对。 相反,它将获取最新的映射对。例如:
示例文件:
a=1
b=2
c=3
d=4
a=10
c=7
属性类将返回最新的对,即
a=10
b=2
c=7
d=4
如果您的要求是查找所有对是否重复,请使用以下使用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");*/
}
答案 2 :(得分:0)
您可以使用缓冲读取器读取文件的行并拆分结果:
public static void main(String[] args) throws IOException {
Reader file = new FileReader("C:/file.cfg");
BufferedReader br = new BufferedReader(file);
String line = br.readLine();
while (line != null) {
String obj[] = line.split("=");
for (int i=0 ; i<obj.length; i=+2 ){
System.out.println(obj[i]+"="+obj[i+1]);
line = br.readLine();
}
}
}