想要获取到文件中key对应得value,以等号分割
import scala.collection.mutable
import scala.util.matching.Regex
class conf {
def parser(value: String): mutable.Map[String, String] = {
var cs: mutable.Map[String, String] = mutable.Map.empty
val pattern: Regex = new Regex("""(^[a-zA-Z0-9_-]+?)\s+([\w\W]+?)$""")
try {
if (value != null) {
val lines: Array[String] = value.split("\n")
for (line <- lines) {
if ((pattern findAllIn line).mkString != null) {
if (line != ""){
val k: String = line.split("=", 2)(0).replaceAll(" ", "")
val v: String = line.split("=", 2)(1)
cs += (k -> v)
}
}
}
}
}catch {
case e: Exception => {
println(s"!!!!!!!! " + e.getMessage)
}
}
cs
}
}
使用该方法返回的是一个map,key是文件中对应的k,value是文件中对应得v
在类中调用该方法
val content: Iterator[String] = Source.fromFile(path).getLines
val conf: conf = new conf()
val contentFilter: Iterator[String] = content.filter(t => t.contains("="))
val confMap: mutable.Map[String, String] = conf.parser(contentFilter.mkString("\n"))
传入String类型的
pash路径,获取到文件的每一行,new方法过滤出包含=的数据,然后传入到方法中执行,返回map
val mDatabase: String = confMap("$mDatabase")
传入key获取到对应得value