InputStream (abstract) ByteArrayInputStream(byte[]) FileInputStream(File)(String)(FileDescriptor) FilterInputStream(InputStream) BufferedInputStream(InputStream) DataInputStream(implements DataInput)(InputStream) PushbackInputStream(InputStream) ObjectInputStream(InputStream) PipedInputStream(PipedOutputStream)() SequenceInputStream(InputStream, InputStream)(Enumeration) OutputStream (abstract) ByteArrayOutputStream() FileOutputStream(File)(String)(FileDescriptor) FilterOutputStream(OutputStream) BufferedOutputStream(OutputStream) DataOutputStream(OutputStream) PrintStream(OutputStream) ObjectOutputStream(OutputStream) PipedOutputStream(PipedInputStream)() Reader (abstract) BufferedReader(Reader) LineNumberReader(Reader) CharArrayReader(char[]) FilterReader(abstract)(Reader) PushbackReader(Reader) InputStreamReader(InputStream) FileReader(File)(String)(FileDescriptor)(convenience) PipedReader(PipedWriter)() StringReader(String) Writer (abstract) BufferedWriter(Writer) CharArrayWriter() FilterWriter(abstract)(Writer) OutputStreamWriter(OutputStream) FileWriter(File)(String)(FileDescriptor)(convenience) PipedWriter(PipedReader)() PrintWriter(OutputStream)(Writer) StringWriter() System.in is a BufferedInputStream System.out is a PrintStream