2012-05-24 83 views
0

我有一个文本文件,其中包含以key = value方式格式化的信息。我如何查找关键字并返回值。在包含字符串的文本文件中返回一行

例如,假设该文件有:

KeyOne=ValueOne 
KeyTwo=ValueTwo 

,我想有这需要KeyOne并返回ValueOne的方法。

+2

你有没有尝试过之前发布在这里? – Blender

+0

注意Java的属性文件。看起来你的键值文件与它们相似。 http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html –

回答

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
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); 
-1

一大堆。你可以

a。 b。逐行读取文件,分割输入,然后填入地图

b。对整个文件应用正则表达式搜索

c。你可以索引一个全文搜索的东西

这一切都取决于你的用例。很难推荐一种不理解背景的方法。

相关问题