在Scala程序中,我需要从标准输入中读取密码字符串(禁用回显).我尝试过:
java.io.Console.readPassword
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,我不能java.io.Console从Scala(?)调用对象中的任何方法.
从Scala中的标准输入读取字符串(带有回显禁用)的"标准"方法是什么?
ade*_*rtc 16
我假设您要从控制台提示符读取密码,因此您需要Console从System(Console不是单例)创建实例.
scala> val standardIn = System.console()
standardIn: java.io.Console = java.io.Console@69d1964d
scala> val password = standardIn.readPassword()
Run Code Online (Sandbox Code Playgroud)
请注意,import由于Scala的类型推断以及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()
}
}
Run Code Online (Sandbox Code Playgroud)
编译/运行:
$ scalac ReadPassword.scala
$ scala ReadPassword
standardIn object: java.io.Console@311671b2
Password>
Password: hello world
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4281 次 |
| 最近记录: |