如何在Scala中读取属性文件

24

我刚接触 Scala 编程,想要在 Scala 中读取属性文件。

我找不到任何用于在 Scala 中读取属性文件的 API。

请告诉我是否存在此类 API 或其他读取属性文件的方式。

4个回答

23
除了Java API之外,还有一个由Typesafe开发的名为config的库,它具有良好的API,可用于处理不同类型的配置文件。

2
太复杂了,而且读取的是资源而不是文件 :( - Ali
2
请不要建议人们参考过度设计的库,如TypeSafe config,当他们可以简单地使用Scala中的Java API。我知道Type-Safe config有其优缺点,但为什么要用隧道掘进机在墙上钻孔呢? - nomadSK25

18

你需要以类似于将 Scala Map 转换为 java.util.Map 的方式来处理它。 java.util.Properties 扩展了 java.util.HashTable,而 java.util.HashTable 又扩展了 java.util.Dictionary

scala.collection.JavaConverters 具有将 Dictionary 转换为 Scala mutable.Map 并相反的功能:

val x = new Properties
//load from .properties file here.
import scala.collection.JavaConverters._

scala> x.asScala
res4: scala.collection.mutable.Map[String,String] = Map()

您可以使用上述的Map来获取和检索。但如果您希望将其转换回Properties类型(以进行存储等操作),则可能需要手动进行类型转换。


7

2

考虑一些类似的事情

def getPropertyX: Option[String] = Source.fromFile(fileName)
  .getLines()
  .find(_.startsWith("propertyX="))
  .map(_.replace("propertyX=", ""))

1
请使用属性(Property)代替:properties.load(this.getClass.getResourceAsStream("/path/to/file.properties"))``` - Pardeep

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接