Java

【Java】キーボード入力を受け付ける2つの方法【BufferedReader & Scanner】

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:簡潔に書ける

参考リンク

-Java

© 2024 Reasonable Code