The Abstract Body Classes
The abstract body classes for the input streams are named RW{TYPE}InputStreamImp and RWFiltered{TYPE}InputStreamImp, and the abstract body classes for the output streams are named RW{TYPE}OutputStreamImp and RWFiltered{TYPE}OutputStreamImp, where {TYPE} is one of the following:
*Byte
*Char
*UChar
*WChar
*Data
The abstract body class RW{TYPE}InputStreamImpis the base class for input streams that are terminal elements in a processing stream. Class RW{TYPE}OutputStreamImp is the base class for output streams. These concrete terminal stream elements can be used by themselves or as first processing elements. An example of these elements is a TCP/IP network stream.
The abstract body class RWFiltered{TYPE}InputStreamImp is the base class for input streams that are intermediate elements in a processing stream. Class RWFiltered{TYPE}OutputStreamImp is the base class for output streams that are intermediate elements in a processing stream. These concrete intermediate stream elements cannot be used by themselves or as first processing elements. They take a handle to the next processing element when constructed. An example of these elements is the synchronized streams that, for each operation invoked on them, lock an internal mutex, and then forward the operation onto the next processing element.