我有一个文本文件,其中包含以key = value方式格式化的信息。如何查找密钥并返回值。
例如,假设文件包含:
KeyOne=ValueOne
KeyTwo=ValueTwo
我希望有一个方法,它接受KeyOne并返回ValueOne。
答案 0 :(得分:1)
好的,我心情很好:),未经测试:
//given that 'input' got the contents of the file
Map<String,String> m = new HashMap<String,String>();
//this can be done more efficient probably but anyway
//normalize all types of line breaks to '\n'
input = input.replaceAll("\r\n","\n");
input = input.replaceAll("\r","\n");
//populate map
String[] lines = input.split("\n");
for(int i=0 ; i< lines.length; i++){
String[] nv = lines[i].split("=");
m.put(nv[0],nv[1]);
}
//get value given key:
String key = "somekey";
String someValue = m.get(key);
System.out.println(someValue);
答案 1 :(得分:1)
Scanner s = new Scanner("Filename");
Map<String, String> m = new HashMap<String, String>();
while(s.hasNext()){
String line[] = s.nextLine().split("=");
m.put(line[0], line[1]);
}
获取值:
m.get(ValueOne);
答案 2 :(得分:1)
如果您只需要读取名称 - 值对,并且如果它具有配置性质,那么您可以考虑在Java中使用属性文件。
您可以查看http://www.mkyong.com/java/java-properties-file-examples/
答案 3 :(得分:-1)
各种各样的方式。你可以
一个。逐行读取文件,拆分输入,然后填充地图
湾将正则表达式表达式搜索作为整体应用于文件
℃。您可以索引全文搜索事物
这完全取决于您的使用案例。很难在不了解背景的情况下推荐一种方法。