Classes:

Java's implementation of Streams contains two main classes - InputStream and OutputStream. All the specialized stream functions are derived from these two classes.

All basic methods required to perform input operations on streams are provided by the InputStream Class.

The basic methods required to perform output operations are provided by the OutputStream Class.

Both InputStream and OutputStream Classes are abstract and act as super classes for subsequent specialized stream classes.