BufferedReaderとScannerでのコンソールからの文字入力方法を比較!Java初心者の勉強

BufferedReaderでコンソールから文字入力方法を調べていたらScannerでの入力方法も気になってきたので2つの違いがわかればと比較してみたいと思います。

参考サイト:Difference between Scanner and BufferReader Class in Java

BufferedReaderでコンソールから文字入力

※ eclipseでは文字入力は英語で入力するか日本語の場合はきちんと改行された位置から文字を入力しないと文字が繰り返されておかしなことになります。Macだからかも?Scannerも同様です。

Scannerでコンソールから文字入力

Scannerのほうが比較的読みやすいコードですね。
さほど違いを感じませんでした。

ScannerとBufferedReaderの違い

コードの違いはScannerのほうが簡単な印象ですが、その他違いを簡単にまとめます。

  • 処理スピードはBufferedReaderのほうが早い
  • プリミティブデータ型を直接読み取るならScanner
  • BufferedReaderは文字をバッファリングして、文字、配列、および行を読み取るのが得意
  • バッファはBufferedReader (8192 chars)、Scannerは(1024 chars)
  • BufferedReaderはスレッドセーフだがScannerはスレッドセーフではない
  • Scsnnerは正規表現を使用してプリミティブ型および文字列の構文解析が可能
    サンプル:Scanner s = new Scanner(input).useDelimiter("\sfish\s");

参考元:Scanner vs. BufferedReader

それぞれのクセを理解してうまく利用できるようになりたいものです。

Java

Posted by Nakamoto