0

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

例如,假设该文件具有:

KeyOne=ValueOne
KeyTwo=ValueTwo

我想要一个采用 KeyOne 并返回 ValueOne 的方法。

4

4 回答 4

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);
于 2012-05-25T00:07:06.157 回答
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);
于 2012-05-25T00:09:04.343 回答
1

如果您只需要读取名称-值对,并且这是配置性质的,那么您可以考虑在 Java 中使用属性文件。

你可以看看这个http://www.mkyong.com/java/java-properties-file-examples/

于 2012-05-25T03:36:35.593 回答
-1

一大堆方法。你可以

一种。逐行读取文件,拆分输入,然后填充地图

湾。将正则表达式搜索应用于整个文件

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

这完全取决于您的用例。在不了解上下文的情况下很难推荐一种方法。

于 2012-05-25T00:09:14.203 回答