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()
Scala の型推論と、デフォルトですでにスコープ内にimport
あるという事実のために、 no は必要ないことに注意してください。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