我有以下文件:
name = David
city = sydney
COuntry = Australia
我正在尝试使用 groovy 创建一个 HashMap ,并将其分割为 =
并将其存储在一个数组中,以便 part[0]
包含 before equal 和 part[1]
包含在等于之后。然后我尝试在这里创建一张 map 。
所需输出:
def mapedData = [name :david , city : sydney , country :australia ]
我的尝试:
String s=""
def myfile = new File("C:/Users/.............")
BufferedReader br = new BufferedReader(new FileReader(myfile));
Map<String, String> map = new HashMap<String, String>();
while((s = br.readLine()) != null) {
if(!s.startsWith("#")) {
StringTokenizer st=new StringTokenizer(s, "=")
while(st.hasMoreElements()) {
String line=st.nextElement().toString().trim()
print line
}
}
}
}
最佳答案
如果您想从 Groovy 中的文件创建映射,您可以使用 java.util.Properties 来实现。这是一个例子:
def file = new File("C:\\stackoverflow\\props.properties")
def props = new Properties()
file.withInputStream { stream ->
props.load(stream)
}
println(props)
打印出:
[key1:value1, key2:value2]
props.properties
文件包含以下内容:
# Stackoverflow test
key1 = value1
key2 = value2
关于java - 在groovy中创建 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47469472/