Kotlin - println使用字符串模板到stderr

时间:2017-05-27 19:43:15

标签: kotlin

如何将println()的输出发送到System.err。我想使用字符串模板

val i = 3
println("my number is $i")

println()消息发送到stdout,看起来没有选项可以发送到stderr。

4 个答案:

答案 0 :(得分:6)

你可以像在Java中那样做:

System.err.println("hello stderr")

标准的stdout输出只是通过Kotlin中的一些辅助方法得到特殊的较短版本,因为它是最常用的输出。您也可以使用完整的System.out.println表单。

答案 1 :(得分:5)

为什么不创建全局函数

fun printErr(errorMsg:String){
   System.err.println(errorMsg)
}

然后从任何软件中调用它

printErr("custom error with ${your.custom.error}")

答案 2 :(得分:3)

不幸的是,科特林没有提供写stderr的普遍方式。

如果您使用Kotlin定位 JVM ,则可以使用与Java中相同的API。

System.err.println("Hello standard error!")

对于 Kotlin Native ,您可以使用打开stderr的功能,并使用platform.posix软件包手动对其进行写入。

val STDERR = platform.posix.fdopen(2, "w")
fun printErr(message: String) {
    fprintf(STDERR, message + "\n")
    fflush(STDERR)
}

printErr("Hello standard error!")

答案 3 :(得分:1)

如果您想在Kotlin中像Java一样打印错误,请检查以下代码:

System.err.println("Printing Error")

它将以红色打印。

但是,如果你只使用println(),那么它将起作用:

System.out.println("Printing Hello")