java.io.FilterInputStream
and java.io.FilterOutputStream
classes are concrete subclasses of InputStream
and OutputStream
that somehow modify data read from an underlying stream. You rarely use these classes directly, but their subclasses are extremely important, especially DataInputStream
and DataOutputStream
.
You connect filter streams to an underlying stream that supplies the actual bytes of data by passing the original stream to the filter stream's constructor. For example, to create a new DataOutputStream
from a FileOutputStream
you might do this:
FileOutputStream fos = new FileOutputStream("ln.txt");
DataOutputStream dos = new DataOutputStream(fos);
It's not uncommon to combine these into one line like this:
DataOutputStream dos = new DataOutputStream(new FileOutputStream("ln.txt"));