JavaA2Z

KAB-studio > プログラミング > JavaA2Z > ストリームとは

ストリーム

日本語 流れ
英語 stream
ふりがな すとりーむ
フリガナ ストリーム

解説

に並べられ、どちらかの方向に「流れる」データ。
 
たとえば、バイナリーファイルにおけるバイトデータや、ソケット接続時に送受信するバイトデータ、さらに標準入出力

文字列等、直線上に並べられたデータが、ひとつずつ取得できる状態になっているもの、もしくはひとつずつ出力することができるものを「ストリーム」と言う。
具体的な何かを指すわけではなく、並べられたデータに「入出力」の機能が付けば、それはストリームである、と言える。
「入出力」がなければ、ストリームとはならないため注意。入出力という「流れ」こそが、「ストリーム」の意味である。
 
ストリームを操作するためのクラスは、「バイト」の並びを対象とするものと「文字」の並びを対象とするものの二通りある。
 
バイトストリーム
文字ストリーム
 
ストリームがbyte配列状であれば「バイトストリーム」、ストリームが文字の並びであれば「文字ストリーム」を使用する。
たとえば、ファイルが対象の場合、バイナリーファイルであればバイトストリームテキストファイルであれば文字ストリームを使用する。
ただし、この2つを連結することができ、区別が曖昧な点もあるため、ストリームや使用目的から簡単に「どちらを使う」かを決めるのは難しい。それぞれのクラスを見比べて、使用に適したストリームクラスを選択することになるだろう。
 
さらに、ストリームから取得する「入力」用クラスと、ストリームへと出力する「出力」用クラスがある。
 
バイト入力ストリーム
バイト出力ストリーム
文字入力ストリーム
文字出力ストリーム
 
これらのクラス、以下のクラスサブクラスが該当する。
 
バイト入力ストリームInputStream
バイト出力ストリームOutputStream
文字入力ストリームReader
文字出力ストリームWriter
 
「入力」と「出力」は「ストリームから入力」「ストリームへ出力」であるため注意すること。
 
バイトストリームJ2SEの初期から存在しているため、仕様が古い面もある。そのため、一部のクラスが「推奨しません」になっている。また、対象が「バイト」であり、分かりづらい面もある。
文字ストリームは次のバージョンから追加されたものであり、そのため幾分使いやすくなっている。
基本的には文字ストリームクラスを使用することを考え、ストリームによってはバイトストリームクラスを使用する、という方向で考えるといいだろう。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

「ストリームわかりにけー!」
「そう? C++にはistreamとostreamってクラスがあったから」
「お、じゃあ慣れてるんだな」
「まーね。iostreamクラスもあったら良かったんだけど」
「……入出力両方くっついてるクラス……?」
「あと>>で入力、<<で出力できたらいいのにね」
「ビットシフトで入出力!? わけわかんねー!!」
「ストリームわかりにけー!」
「そう? C++にはistreamとostreamってクラスがあったから」
「お、じゃあ慣れてるんだな」
「まーね。iostreamクラスもあったら良かったんだけど」
「……入出力両方くっついてるクラス……?」
「あと>>で入力、<<で出力できたらいいのにね」
「ビットシフトで入出力!? わけわかんねー!!」

この単語を含むページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/11/24
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。