Scala:读取配置文件并将值存储到类对象中

时间:2016-03-10 14:14:46

标签: scala

我是Scala编程的新手,尝试使用Scala读取配置文件并将值保存到对象中

我的配置文件值是

rawIngestionTableName=rawdataingestion
enrichedDataTableName=enricheddataingestion
rulesOutputDataTableName=rulesoutput
Ip=localhost
database=abc

任何人都可以建议我这样做的代码。

3 个答案:

答案 0 :(得分:0)

您可以查看TypeSafe (or Lightbend) Config library

它还支持Java属性(假设您的示例是标准的.properties文件。当您使用它时,我建议您查看HOCON格式。

您可以包含的依赖是

<dependency>
    <groupId>com.typesafe</groupId>
    <artifactId>config</artifactId>
    <version>1.3.0</version>
</dependency>

或(如果使用sbt)

libraryDependencies += "com.typesafe" % "config" % "1.3.0"

答案 1 :(得分:0)

如果您的配置非常简单,可以使用以下命令:

import scala.io.Source

object conf extends App {

  val input = """rawIngestionTableName=rawdataingestion
enrichedDataTableName=enricheddataingestion
rulesOutputDataTableName=rulesoutput
Ip=localhost
database=abc"""

  // or if it's from the filesystem
  // val input = Source.fromFile("/path/to/file.conf").mkString("\n")

  val conf = input.split("\n").map(_.split("=", 2)).map(p => (p(0) -> p(1))).toMap

  println(conf("database")) // outputs "abc"

}

答案 2 :(得分:0)

感谢 bjfletcher。 对我来说,它有一点变化。我从文件中读取时删除了“\n”。

val input = Source.fromFile("/path/to/file.conf").mkString("\n")
val conf = input.split("\n").map(_.split("=", 2)).map(p => (p(0) -> p(1))).toMap

println(conf("database"))