| Interface | Description | 
|---|---|
| Closeable | 
 A  
Closeable class represents a stream of
 data, which can be closed when it is no longer needed. | 
| DataInput | 
 This interface is implemented by classes that can data from streams
 into Java primitive types. 
 | 
| DataOutput | 
 This interface is implemented by classes that can wrte data to streams
 from Java primitive types. 
 | 
| FilenameFilter | 
 This interface has one method which is used for filtering filenames
 returned in a directory listing. 
 | 
| Flushable | 
 A  
Flushable class represents a stream of
 data, for which internally buffered data can be `flushed'. | 
| Serializable | 
 This interface has no methods. 
 | 
| Class | Description | 
|---|---|
| BufferedInputStream | 
 This subclass of  
FilterInputStream buffers input from an
 underlying implementation to provide a possibly more efficient read
 mechanism. | 
| BufferedOutputStream | 
 This class accumulates bytes written in a buffer instead of immediately
 writing the data to the underlying output sink. 
 | 
| BufferedReader | 
 Reads text from a character-input stream, buffering characters so as to
 provide for the efficient reading of characters, arrays, and lines. 
 | 
| BufferedWriter | 
 Writes text to a character-output stream, buffering characters so as to
 provide for the efficient writing of single characters, arrays, and strings. 
 | 
| ByteArrayInputStream | 
 A  
ByteArrayInputStream contains
 an internal buffer that contains bytes that
 may be read from the stream. | 
| ByteArrayOutputStream | 
 This class allows data to be written to a byte array buffer and
 and then retrieved by an application. 
 | 
| CharArrayReader | 
 This class permits an array of chars to be read as an input stream. 
 | 
| CharArrayWriter | 
 This class allows data to be written to a char array buffer and
 and then retrieved by an application. 
 | 
| DataInputStream | 
 A data input stream lets an application read primitive Java data
 types from an underlying input stream in a machine-independent
 way. 
 | 
| DataOutputStream | 
 A data output stream lets an application write primitive Java data
 types to an output stream in a portable way. 
 | 
| File | 
 Implements a file system using pages of flash memory. 
 | 
| FileInputStream | 
 Reads a stream of bytes from a file. 
 | 
| FileOutputStream | 
 Writes a stream of bytes to a file. 
 | 
| FileReader | 
 This class provides a convenient way to set up a  
Reader
 to read from a file. | 
| FileWriter | 
 This is a convenience class for writing to files. 
 | 
| FilterInputStream | 
 This is the common superclass of all standard classes that filter
 input. 
 | 
| FilterOutputStream | 
 This class is the common superclass of output stream classes that
 filter the output they write. 
 | 
| FilterReader | 
 This is the common superclass of all standard classes that filter
 input. 
 | 
| FilterWriter | 
 This class is the common superclass of output character stream classes
 that filter the output they write. 
 | 
| InputStream | 
 This abstract class forms the base of the hierarchy of classes that read
 input as a stream of bytes. 
 | 
| InputStreamReader | |
| LineNumberReader | 
 A buffered character-input stream that keeps track of line numbers. 
 | 
| OutputStream | 
 This abstract class forms the base of the hierarchy of classes that
 write output as a stream of bytes. 
 | 
| OutputStreamWriter | |
| PipedInputStream | 
 An input stream that reads its bytes from an output stream
 to which it is connected. 
 | 
| PipedOutputStream | 
 This class writes its bytes to a  
PipedInputStream to
 which it is connected. | 
| PipedReader | 
 An input stream that reads characters from a piped writer to which it is
 connected. 
 | 
| PipedWriter | 
 This class writes its chars to a  
PipedReader to
 which it is connected. | 
| PrintStream | 
 This class prints Java primitive values and object to a stream as
 text. 
 | 
| PrintWriter | 
 This class prints Java primitive values and objects to a stream as
 text. 
 | 
| PushbackInputStream | 
 This subclass of  
FilterInputStream provides the ability to
 unread data from a stream. | 
| PushbackReader | 
 This subclass of  
FilterReader provides the ability to
 unread data from a stream. | 
| Reader | 
 This abstract class forms the base of the hierarchy of classes that read
 input as a stream of characters. 
 | 
| SequenceInputStream | 
 This class merges a sequence of multiple  
InputStream's in
 order to form a single logical stream that can be read by applications
 that expect only one stream. | 
| StreamTokenizer | 
 The  
StreamTokenizer class takes an input stream and
 parses it into "tokens", allowing the tokens to be
 read one at a time. | 
| StringReader | 
 A character stream whose source is a string. 
 | 
| StringWriter | 
 A character stream that collects its output in a string buffer, which can
 then be used to construct a string. 
 | 
| Writer | 
 This abstract class forms the base of the hierarchy of classes that
 write output as a stream of chars. 
 | 
| Exception | Description | 
|---|---|
| EOFException | 
 This exception is thrown when the end of the file or stream was
 encountered unexpectedly. 
 | 
| FileNotFoundException | |
| InterruptedIOException | 
 This exception is thrown when a in process I/O operation is interrupted
 for some reason. 
 | 
| IOException | 
 This exception is thrown to indicate an I/O problem of some sort
 occurred. 
 | 
| UnsupportedEncodingException | 
 This exception is thrown when the requested character encoding is
 not supported. 
 | 
| UTFDataFormatException | 
 When reading a UTF string from an input stream, this exception is thrown
 to indicate that the data read is invalid. 
 |