| public abstract class InputStream | 
                  reads a stream of BYTES. 
                  Is the parent of all input stream classes. 
                  IS.read() reads next byte of input from stream. 
                 | 
             
              | public abstract class Reader | 
                  like InputStream but reads a stream of CHARACTERS!!!! 
                  Is the parent of all reader classes. 
                  R.read() reads next single character from stream. 
                 | 
             
              | public abstract class OutputStream | 
                  writes a stream of BYTES!!!! 
                  Is the parent of all OutputStream classes. 
                  OS.write(byte b[]) writes b.length bytes from the 
                    b[] array. 
                  OS.close() closes stream 
                 | 
             
              | public abstract class Writer | 
                  like OutputStream but reads a stream of CHARACTERS!!!! 
                  Is the parent of all Writer classes. 
                  W.write(char c[]) writes c.length bytes from the 
                    c[] array. 
                  W.write(Strint S) writes the string S. 
                 |