
FileInputStream
は装飾される
コンポーネントです。
Java I/O
ラ
イブラリは、
FileInputStream
、
StringBufferInputStream
、
ByteArrayInputStream
といった複数のコ
ンポーネントを用意しています。どれもバイ
トを読み取るための基底コンポーネントとな
ります。
実世界のデコレータ:
Java I/O
java.io
パッケージにある大量のクラスには圧倒されます。この
API
を初めて見たと
き(そして
2
回目や
3
回目であっても)、「おぉ」と思わず声が出た人は、あなただけ
ではありません。しかし、もうあなたは
Decorator
パターンについて知っています。
java.io
パッケージの大部分は
Decorator
パターンに基づいているので、
I/O
クラスの
ことを深く理解できるはずです。ここでは、デコレータを使用して、ファイルから
のデータ読み取りに機能を追加する典型的なオブジェクト群を示します。
Z
i
p
I
n
p
u
t
S
t
r
e
a
m
B
u
f
f
e
r
e
d
I
n
p
u
t
S
t
r
e
a
m
F
i
l
e
I
n
p
u
t
S
t
r
e
a
m
BufferedInputStream
は具象デコレータです。
BufferedInputStream
は
バッファリングの振る舞いを
FileInputStream
に追加します。
入力をバッファリングして性能を
向上させます。
ZipInputStream
も具象デ
コレータです。
ZIP
ファイル
からデータを読む際に
ZIP
ファイルエントリを読み取る
機能を追加します。
読み取り用のテキストファイル ...