BufferedInputStream and BufferedOutputStreamDataInputStream and DataOutputStreamPrintStreamPrintStream allows very simple printing of both primitive
values, objects, and string literals. It uses the platform's
default character encoding to convert characters into bytes. This
class traps all IOExceptions. This class is primarily intended for
debugging. System.out and
System.err are instances of PrintStream.
PushbackInputStreamGZIPInputStream and GZIPOutputStream
From the java.util.zip package, these classes
provide compression and decompression services
DigestInputStream and DigestOutputStream
From the java.util.security package, these classes
can calculate a message digest for a stream using a strong hash
function like SHA.
CipherInputStream and CipherOutputStream
From the javax.crypto package in the Java
Cryptography Extension (JCE), a standard extension to Java,
these classes can calculate encrypt or decrypt streams using a
variety of algorithms like DES, RSA, Blowfish, and more.
ObjectInputStream and ObjectOutputStream
Subclasses of DataInputStream and
DataOutputStream that can also serialize and deserialize
Java objects to and from raw bytes. Used by remote method
invocation (RMI) and JavaBeans.
You can also create your own subclasses of
FilterInputStream and FilterOutputStream that
perform custom filtering.