Java: Scanner を使わず System.in.read() から標準入力を取得する方法


Java で java.util.Scanner を使わずに、 System.in.read() を使って 直接 入力を取得する方法をまとめました。

環境

  • Java 11

[おさらい] Scanner を使って標準入力を取得する方法

Scanner を使って標準入力を取得するには次のようにします。 Scanner のコンストラクタに System.in を渡してインスタンスを作ります。

Scanner のインスタンスは next だけでなく、 文字を数値にしてから返す nextInt, nextDouble や、 真偽値にしてから返す nextBoolean などを備えていて便利です。

System.in から直接標準入力を取得する方法

System.in から直接標準入力を取得するには、 System.in.read() を利用します。

StandardInput.read() で標準入力の文字列を取得できるようにしています。

標準入力で Enter が押されるまでは値を返しません。 System.in は Enter が押される('\n' が入力される)と、 それまでの文字を1文字ずつ返します。