ストリーム
日本語 | 流れ |
英語 | stream |
ふりがな | すとりーむ |
フリガナ | ストリーム |
一列に並べられ、どちらかの方向に「流れる」データ。
たとえば、バイナリーファイルにおけるバイトデータや、ソケット接続時に送受信するバイトデータ、さらに標準入出力
文字列等、直線上に並べられたデータが、ひとつずつ取得できる状態になっているもの、もしくはひとつずつ出力することができるものを「ストリーム」と言う。
具体的な何かを指すわけではなく、並べられたデータに「入出力」の機能が付けば、それはストリームである、と言える。
「入出力」がなければ、ストリームとはならないため注意。入出力という「流れ」こそが、「ストリーム」の意味である。
ストリームを操作するためのクラスは、「バイト」の並びを対象とするものと「文字」の並びを対象とするものの二通りある。
・バイトストリーム
・文字ストリーム
ストリームがbyte型配列状であれば「バイトストリーム」、ストリームが文字の並びであれば「文字ストリーム」を使用する。
たとえば、ファイルが対象の場合、バイナリーファイルであればバイトストリーム、テキストファイルであれば文字ストリームを使用する。
ただし、この2つを連結することができ、区別が曖昧な点もあるため、ストリームや使用目的から簡単に「どちらを使う」かを決めるのは難しい。それぞれのクラスを見比べて、使用に適したストリームクラスを選択することになるだろう。
さらに、ストリームから取得する「入力」用クラスと、ストリームへと出力する「出力」用クラスがある。
・バイト入力ストリーム
・バイト出力ストリーム
・文字入力ストリーム
・文字出力ストリーム
これらのクラス、以下のクラスのサブクラスが該当する。
・バイト入力ストリーム:InputStream
・バイト出力ストリーム:OutputStream
・文字入力ストリーム:Reader
・文字出力ストリーム:Writer
「入力」と「出力」は「ストリームから入力」「ストリームへ出力」であるため注意すること。
バイトストリームはJ2SEの初期から存在しているため、仕様が古い面もある。そのため、一部のクラスが「推奨しません」になっている。また、対象が「バイト」であり、分かりづらい面もある。
文字ストリームは次のバージョンから追加されたものであり、そのため幾分使いやすくなっている。
基本的には文字ストリームクラスを使用することを考え、ストリームによってはバイトストリームクラスを使用する、という方向で考えるといいだろう。
たとえば、バイナリーファイルにおけるバイトデータや、ソケット接続時に送受信するバイトデータ、さらに標準入出力
文字列等、直線上に並べられたデータが、ひとつずつ取得できる状態になっているもの、もしくはひとつずつ出力することができるものを「ストリーム」と言う。
具体的な何かを指すわけではなく、並べられたデータに「入出力」の機能が付けば、それはストリームである、と言える。
「入出力」がなければ、ストリームとはならないため注意。入出力という「流れ」こそが、「ストリーム」の意味である。
ストリームを操作するためのクラスは、「バイト」の並びを対象とするものと「文字」の並びを対象とするものの二通りある。
・バイトストリーム
・文字ストリーム
ストリームがbyte型配列状であれば「バイトストリーム」、ストリームが文字の並びであれば「文字ストリーム」を使用する。
たとえば、ファイルが対象の場合、バイナリーファイルであればバイトストリーム、テキストファイルであれば文字ストリームを使用する。
ただし、この2つを連結することができ、区別が曖昧な点もあるため、ストリームや使用目的から簡単に「どちらを使う」かを決めるのは難しい。それぞれのクラスを見比べて、使用に適したストリームクラスを選択することになるだろう。
さらに、ストリームから取得する「入力」用クラスと、ストリームへと出力する「出力」用クラスがある。
・バイト入力ストリーム
・バイト出力ストリーム
・文字入力ストリーム
・文字出力ストリーム
これらのクラス、以下のクラスのサブクラスが該当する。
・バイト入力ストリーム:InputStream
・バイト出力ストリーム:OutputStream
・文字入力ストリーム:Reader
・文字出力ストリーム:Writer
「入力」と「出力」は「ストリームから入力」「ストリームへ出力」であるため注意すること。
バイトストリームはJ2SEの初期から存在しているため、仕様が古い面もある。そのため、一部のクラスが「推奨しません」になっている。また、対象が「バイト」であり、分かりづらい面もある。
文字ストリームは次のバージョンから追加されたものであり、そのため幾分使いやすくなっている。
基本的には文字ストリームクラスを使用することを考え、ストリームによってはバイトストリームクラスを使用する、という方向で考えるといいだろう。
参考サイト
- (参考サイトはありません)
「ストリームわかりにけー!」
「そう? C++にはistreamとostreamってクラスがあったから」
「お、じゃあ慣れてるんだな」
「まーね。iostreamクラスもあったら良かったんだけど」
「……入出力両方くっついてるクラス……?」
「あと>>で入力、<<で出力できたらいいのにね」
「ビットシフトで入出力!? わけわかんねー!!」
「そう? C++にはistreamとostreamってクラスがあったから」
「お、じゃあ慣れてるんだな」
「まーね。iostreamクラスもあったら良かったんだけど」
「……入出力両方くっついてるクラス……?」
「あと>>で入力、<<で出力できたらいいのにね」
「ビットシフトで入出力!? わけわかんねー!!」
「ストリームわかりにけー!」 「そう? C++にはistreamとostreamってクラスがあったから」 「お、じゃあ慣れてるんだな」 「まーね。iostreamクラスもあったら良かったんだけど」 「……入出力両方くっついてるクラス……?」 「あと>>で入力、<<で出力できたらいいのにね」 「ビットシフトで入出力!? わけわかんねー!!」
「みだし」に含まれているページ
- BufferedInputStream
- BufferedOutputStream
- ByteArrayInputStream
- ByteArrayOutputStream
- DataInputStream
- DataOutputStream
- FileInputStream
- FileOutputStream
- FilterInputStream
- FilterOutputStream
- InputStream
- InputStreamReader
- LineNumberInputStream
- ObjectInputStream
- ObjectOutputStream
- OutputStream
- OutputStreamWriter
- PipedInputStream
- PipedOutputStream
- PrintStream
- PushbackInputStream
- SequenceInputStream
- StringBufferInputStream
- ストリーム
- バイトストリーム
- バイト入力ストリーム
- バイト出力ストリーム
- 文字ストリーム
- 文字入力ストリーム
- 文字出力ストリーム
「解説」に含まれているページ
- BufferedInputStream
- BufferedOutputStream
- BufferedReader
- BufferedWriter
- ByteArrayInputStream
- ByteArrayOutputStream
- CharArrayReader
- CharArrayWriter
- close
- DataInputStream
- DataOutputStream
- DOM
- EOFException
- FileInputStream
- FileOutputStream
- FileReader
- FileWriter
- FilterInputStream
- FilterOutputStream
- FilterReader
- FilterWriter
- HttpURLConnection
- InputStream
- InputStreamReader
- IOException
- Jakarta Commons
- java.io
- LineNumberInputStream
- LineNumberReader
- ObjectInputStream
- ObjectOutputStream
- OutputStream
- OutputStreamWriter
- PipedInputStream
- PipedOutputStream
- PipedReader
- PipedWriter
- printStackTrace
- PrintStream
- PrintWriter
- PushbackInputStream
- PushbackReader
- Reader
- Rss4j
- SequenceInputStream
- StringBufferInputStream
- StringReader
- StringWriter
- TCP
- Writer
- Xerces
- クライアント
- サーバー
- ストリーム
- ソケット
- テキストファイル
- バイトストリーム
- バイト入力ストリーム
- バイト出力ストリーム
- バイナリーファイル
- バッファ
- パス
- ファイル
- フラッシュ
- ブロックします
- プロパティファイル
- 改行文字
- 文字コード
- 文字ストリーム
- 文字入力ストリーム
- 文字出力ストリーム
- 直列化
「サンプルプログラムとか」に含まれているページ
- 127.0.0.1
- ByteArrayOutputStream
- DataInputStream
- DataOutputStream
- EOF
- EOFException
- FilterInputStream
- FilterOutputStream
- FilterReader
- FilterWriter
- GET
- HEAD
- HTTP
- InputStream
- InputStreamReader
- localhost
- ObjectInputStream
- ObjectOutputStream
- OutputStream
- OutputStreamWriter
- POST
- PrintStream
- PrintWriter
- Reader
- SequenceInputStream
- Serializable
- TCP
- transient
- Writer
- ZIP
- クライアント
- クライアントサーバーシステム
- サーバー
- ステートレス
- ストリーム
- ソケット
- バイトストリーム
- バイト入力ストリーム
- バイト出力ストリーム
- ブロックします
- リクエスト
- リクエストパラメーター
- リクエストヘッダー
- レスポンス
- レスポンスヘッダー
- 環境変数
- 直列化