Specialized Wrappers
Buffering can be done for every stream.
You can filter any I/O stream to provide a
layer between input and output.
Data of different primitive types can be
read/written with DataInputStreams.
PrintStream is used for terminal type textual
representation of data.
There are I/O wrappers for arrays and Strings
as well.