15. ストリーム

入出力のプログラムはストリームを使って書きます。基本を覚えれば、標準入出力でもファイルでもネットワークでも簡単に扱えます。

(1) データの種類

 プログラム中で扱うデータにはいろいろなものがあります。数字の1もあるクラスのオブジェクトも、画像や音声もデータの一種です。またこのデータを入力したり出力したりする機器もいろんなものがあります。

 このような多種多様なデータ、入出力機器ごとにプログラムを用意していてはプログラムを作る人は大変です。新しい機器が出てきたときも専用のプログラムを作らなければなりません。

 そこで Java では、データにはいろんなものがありますが、これらはすべてバイト単位のデータとして流れているとみなすことで、どんなデータでも同じ方法で扱うことができるようにします。このバイト単位のデータの流れている川のようなものをストリームといいます。

 このようにデータの流れを抽象化することで使用する入出力機器に依存することなく、すべて同じ方法でプログラムを書くことができます(もちろん使うクラスやメソッドは違いますが...)。


(2) ストリームの種類

 ストリームにはいろんなデータが流れていますが、ストリームには2つの種類があります。Java ではストリームを使って入出力プログラムを書きますが、入力用に使うのが入力ストリーム ( InputStream ) 、出力用に使うのが出力ストリーム ( OutputStream ) です。



 出力ストリームは、データを送信したいとき(データを出力したいとき)に使います。このとき、データの行き先は知らなくても構いません。入力ストリームはストリームからデータ取り出したい時(データを受信したいとき、入力したいとき)に使います。このとき、データがどこから来るのかは知らなくても構いません。

 というのが、ストリームの基本的な考え方ですが、あまりにも抽象的すぎてわかりにくいですね。それに、実際にプログラムを作る場合はデータの行き先やどこから取り出すかという指定もします。ということで、実際のプログラムを見ながら考えていくことにしましょう。

 ただ、ストリームにはバイト単位のデータが流れていることは覚えて置いてください。

前の章(14.Menu)   次の章(16.出力ストリーム)