在Scala程序中,我需要从标准输入中读取密码字符串(禁用回显)。我尝试过:
java.io.Console.readPassword
但由于某些原因,我无法从Scala(?)调用java.io.Console
对象中的任何方法。
从Scala中的标准输入读取字符串(带有回显禁用)的“标准”方法是什么?
答案 0 :(得分:16)
我假设您要从控制台提示符处读取密码,因此您需要从Console
创建System
实例(Console
不是单身人士)。
scala> val standardIn = System.console()
standardIn: java.io.Console = java.io.Console@69d1964d
scala> val password = standardIn.readPassword()
请注意,由于Scala的类型推断以及默认情况下import
已在范围内,因此不需要System
。
有关详情,请参阅java.io.Console
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()
}
}
。
编辑:在已编译的Scala程序中:
$ scalac ReadPassword.scala
$ scala ReadPassword
standardIn object: java.io.Console@311671b2
Password>
Password: hello world
编译/运行:
{{1}}