Javaでキーボード入力を受け付ける方法は2つあるようです。
- BufferedReaderクラスを使用する
- Scannerクラスを使用する
それぞれの使い方と違いをまとめてみました。
BufferedReaderクラスの使用例
上記コードを実行すると、以下のようになります。キーボード入力を受け付け、入力した文字を出力します。
Scannerクラスの使用例
上記コードを実行すると、以下のようになります。キーボード入力を受け付け、入力した文字を出力します。
BufferedReaderとScannerの違い
- BufferedReaderは文字列しか受け取れないが、Scannerは数値も直接受け取れる
- BufferedReaderはチェック例外の対処が必要(
IOException
)だが、Scannerは不要 - BufferedReaderの方がScannerよりパフォーマンスが優れている
BufferedReaderは文字列しか受け取れないので、数値を扱いたい場合は、文字列を受け取ったあとに数値に変換してあげないといけません。ScannerはnextInt()
メソッドを使うことで数値を直接受け取れることができます。
BufferedReaderのreadLine()メソッドを実行する際、IOException
が発生する可能性があるため、チェック例外の対処(try-catch
文など)が必要です。Scannerは対処不要です。
BufferedReaderの方がScannerよりパフォーマンスが優れている件については、以下記事が参考になるかと思います。
まとめ
Javaでキーボード入力を受け付ける方法についてご紹介しました。
BufferedReaderクラスとScannerクラスのどちらもいいところがあるんですね。最後にそれぞれのメリットをまとめておきます。
- BufferedReader:パフォーマンスが優れている
- Scanner:簡潔に書ける