Java Gold合格への道 ~Java I/O・パスワードの入力~
スポンサーリンク
こんにちは。たろすです。
今回はJava I/Oのパスワードの入力について説明します。
方法
Javaの標準入力でパスワードを入力させる際にはConsoleクラスのreadPasswordメソッドを使用します。
これを使用することで入力した文字がコンソールに表示されなくなります。
Console console; char[] password = {}; if ((console = System.console()) != null && (password = console.readPassword("Enter new password:")) != null) { // パスワードをDBに登録する処理など }
if文の中で二回null値の判定をしています。
EclipseなどのIDEではCosoleクラスに未対応なため、consoleメソッドはnullを返します。
一回目の判定は、そのような場合にreadLineメソッドを行おうとするとヌルぽになるため、nullではないことを確認しています。
また、コンソール上でCrtl+Cなどでプログラムを強制終了するとreadPasswordの戻り値はnullになります。
二回目の判定は、そのような場合にnullが標準入力の結果として変数に格納されないように確認しています。