2010年7月11日日曜日

Javaの入出力ストリームを勉強しよう - Java

入力ストリームというのは、
キーボードとかから送られてくる入力信号(InputStream、バイトストリーム)、
ハードディスクから読み込むデータ(FileReader、キャラクタストリーム
の流れる道(入力源)

出力ストリームというのは、
ディスプレイに送られる出力信号(OutputStream、バイトストリーム)、
ハードディスクに書き込むデータ(FileWriter、キャラクタストリーム
の流れる道(出力先)

注意:使用したストリームは必ず閉じるようにしてください。

メモ
バイトストリーム:バイト単位で、入出力を行う。 
キャラクタストリーム:文字単位で入出力を行う。

・豆知識1
ファイルを1文字ずつコピーするのは効率が悪いので、行単位すなわちバッファ付きの入出力を行うのがお勧めです。
バッファ付きでないストリームをラップしてバッファ付きにするためのクラスは4つあります。
バイトストリーム用: BufferedInputStreamBufferedOutputStream
キャラクタストリーム用: BufferedReaderBufferedWriter

・豆知識2
javaではたまに「ストリームをフラッシュする」という言葉が出てきます。
このフラッシュ「 flush() 」についての話です。

「出力ストリームがファイルやネットワークの場合、こまめにデータを出力するよりも、データが貯まった時点でまとめて出力した方が効率がいい場合があります。その場合、データを「バッファ」に貯めておき、まとめて出力する方法が取られます。この「まとめて出力する」ことを「フラッシュ」といいます。」*参2より引用
ちなみに、flush()メソッドは、java.io.PrintStreamで定義されています。


参考文献
1.楽STACK「標準入出力」
2.JavaA2Z「フラッシュとは」

最終更新日 2010 - 7/25

0 件のコメント:

コメントを投稿