ストリーム (プログラミング)とは
メモリ領域やファイル、ネットワークに記載・格納されたデータを読み取る、
反対にそれらにデータを書き込むためのオブジェクトや、そのための機能を持つデータ型。
接続や切断、書き込みや読み込みなどを簡易な操作で行える。
InputStream/OutputStream
Javaのストリームオブジェクトで
データをバイナリ形式で読み取り/書き込みを行う。
必ずしもバイナリデータをやり取りするわけではなく、
FileOutputStreamなど、ファイルへの文字の書き込みをバイナリで行う事もできる。
バッファリング
ストリームオブジェクトがストリーム処理を、
一定のデータ量でまとめて行う事で、処理性能を上げられる機能。
バッファリングをしない場合、ストリームは1バイトずつ行われるが、
バッファリングをすることで、ストリームを最大1024バイトずつ行える。
Javaでは、BufferedOutputStreamクラスがバッファリング機能を提供している。
Writer/Reader
Javaのストリームオブジェクトで
文字列データの形式で読み取り/書き込みを行う。
PrintWriter
サーブレットがクライアントにデータ本文を送るためのストリームオブジェクト。
Writer抽象クラスの具象クラス。
コンテンツタイプに設定されている文字セットを使ってエンコーディングする。
デフォルトの文字セットは「ISO-8859-1(Latin1)」で、日本語が文字化けするため、
「setContentType」メソッド又は「setCharacterEncoding」メソッドで文字コードを設定する必要がある。
二つのメソッドはsetCharacterEncoding() は引数に文字コードのみを指定するのに対して、setContentType() は引数にMIME形式とともに文字コードを指定する違いがある。
MIMEタイプは、WEBサーバーとWEBブラウザの間でデータの形式を指定する方法。
人間やアプリケーションの拡張子のようなもの。
以下のようなものがある。