如何在Scala中轻松获取当前操作系统的行分隔符?

时间:2012-02-10 15:34:57

标签: scala newline

我记得在Java中,我们这样做:

System.getProperty("line.separator")

如何在scala中执行相同的操作?有更好(更容易)的方式吗?

2 个答案:

答案 0 :(得分:21)

scala> import util.Properties
import util.Properties

scala> Properties.lineSeparator
res14: java.lang.String =
"
"

答案 1 :(得分:1)

scala.util.Properties.lineSeparator System.lineSeparator 都会做同样的工作。

System.lineSeparator将直接调用Java方法,该方法必须在系统道具中找到属性:

lineSeparator = props.getProperty("line.separator");

结果如下:

scala> System.lineSeparator
res0: String = 
"
"

如果没有找到,它会回退到默认的Java道具。

同样,Properties.lineSeparator会调用:

def lineSeparator = propOrElse("line.separator", "\n")

最终调用:

System.getProperty(name, alt)

结果是一样的:

scala> scala.util.Properties.lineSeparator
res2: String = 
"
"

所以他们都从Java道具中获得行分隔符。唯一的区别是他们如何获得默认值。我不知道为什么它以这种方式实现:)。就像他们不相信Java在这种情况下会有正确的默认值。