在 Scala 程序中,我需要从标准输入中读取密码字符串(禁用回显)。我试过:
java.io.Console.readPassword
但由于某种原因,我无法java.io.Console
从 Scala (?) 调用对象中的任何方法。
从 Scala 的标准输入中读取字符串(禁用回显)的“标准”方式是什么?
我假设您想从控制台提示符读取密码,因此您需要从(不是单例)创建一个Console
实例。System
Console
scala> val standardIn = System.console()
standardIn: java.io.Console = java.io.Console@69d1964d
scala> val password = standardIn.readPassword()
请注意, no是必需的,因为 Scala 的类型推断以及默认情况下已经在范围内import
的事实。System
有关更多信息,请参阅javadoc 。java.io.Console
编辑:在编译的 Scala 程序中:
object ReadPassword {
def main(args: Array[String]) {
val standardIn = System.console()
println("standardIn object: " + standardIn)
print("Password> ")
val pw = standardIn.readPassword()
print("Password: ")
pw.foreach(print) // For demonstration purposes
println()
}
}
编译/运行:
$ scalac ReadPassword.scala
$ scala ReadPassword
standardIn object: java.io.Console@311671b2
Password>
Password: hello world