26.1.8.5 ストリーム

Javaでの入力はストリーム(stream)という概念で扱かわれます.ストリームは「流れ」という意味で,データが一列に並んでいるのを端から順に読んでゆくという感じです.出力についても同様です.

これまで画面表示に使ってきたメソッド "System.out.print()"は,システムに標準的に用意されているクラス"System"の中の変数"out"がもつメソッドです."System.out"には標準出力ストリームが割り当てられています.これと同様に用意されているのが"System.in"で,これには標準入力ストリーム(ふつうはキーボード)が割り当てられているのです.最も簡単なメソッドはreadで,標準入力ストリームから1バイトを入力し,それに対応する値(0〜225)を返します.

System.inはSystemクラスに含まれる変数ですが,その型は"InputStream"という汎用のクラスとなっています.このクラスでは,1バイトずつ,あるいは複数バイトをまとめて入力するだけの機能しかありません.たとえば入力行に

-63 2.71828 Japan

と書いてあっても,単なる "-", "6", "3", " ", "2", ".", …といった文字,より正確には,これらの文字に対応するビットの集まりの列としてしか扱ってくれません.これではあまりに不便ですので,これを解釈して

数値の「-63」,数値の「2.71828」,文字列の「Japan」

として処理してくれるものが,Javaには備わっています.その仕組みを,順を追って見てみることにしましょう.