Codegym University コースの一部としてのメンターによる講義の抜粋。フルコースにお申し込みください。


「アミーゴ、お時間です。これからキーボード入力について説明します。」

「画面にデータを表示するためにSystem.out を使用しました。入力を受け取るにはSystem.inを使用します。」

「簡単そうですね。」

「しかし、System.in には 1 つの欠点があります。キーボードから文字コードしか読み取れないということです。この問題を回避して、大量のデータを一度に読み取るには、より複雑な構造を使用します。」

例1
キーボードから文字列と数字を入力する
InputStream inputStream = System.in;
Reader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String name = bufferedReader.readLine(); //Read a string from the keyboard
String sAge = bufferedReader.readLine(); //Read a string from the keyboard
int nAge = Integer.parseInt(sAge); //Convert the string to a number.
1
タスク
Java Syntax,  レベル 3レッスン 7
ロック未解除
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.
例 2
前の例のよりコンパクトなバージョン:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String name = reader.readLine();
String sAge = reader.readLine();
int nAge = Integer.parseInt(sAge);
例3
さらにコンパクトに
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();

"質問は?"

「うーん…何も分かりませんでした。」

「キーボードから文字列を読み取るには、 BufferedReader オブジェクトを使用するのが最も便利です。ただし、そのためには、データを読み取るオブジェクトを渡す必要があります。この場合は、System.inです。」

「しかし、System.inBufferedReader には互換性がないので、別のアダプター、つまり別のInputStreamReaderオブジェクトを使用します。」

「もう分かった気がします。このScanner クラスは何ですか?」

「スキャナーは便利かもしれませんが、あまり便利ではありません。問題は、(勉強と仕事の両方で) 進めていくと、BufferedReader と InputStreamReader を頻繁に使用することになりますが、スキャナーはほとんど使用しないということです。この例では便利ですが、将来的にはあまり役に立たなくなるので、あまり使用しません。」

「それは明らかなようですが、すべてを理解したかどうかはわかりません。」