Previous | Next | Trail Map | Writing Java Programs | Input and Output Streams


Working with Filtered Streams

You attach a filtered stream to another stream to filter the data as it's read from or written to the original stream. The java.io package contains these filtered streams which are subclasses of either FilterInputStream or FilterOutputStream: This section shows you how to use filtered streams through an example that uses a DataInputStream and a DataOutputStream. In addition, this section shows you how to write your own filtered streams.

Using Filtered Streams

To use a filtered input (output) stream, you attach the filtered stream to another input (output) stream. You attach a filtered stream to another stream when you create it. For example, you can attach a DataInputStream to the standard input stream like this:
DataInputStream dis = new DataInputStream(System.in.read());
String input;

while ((input = dis.readLine()) != null) {
    . . . // do something interesting here
}
You might do this so that you can use the more convenient readXXX() methods, such as readLine(), implemented by DataInputStream.

Using DataInputStream and DataOutputStream

This page provides and explains an example of using DataInputStream and DataOutputStream, two filtered streams that can read and write primitive Java data types.

Writing Your Own Filtered Streams

Many programmers find that they need to implement their own streams that filter or process data as it is being written to or read from the stream. Sometimes the processing is independent of the format of the data, such as counting various items in the stream, and sometimes the processing is directly related to the data itself or the format of the data, such as reading and writing data that is contained in rows and columns. Often, these programmers subclass FilterOutputStream and FilterInputStream to achieve their goals.

See Also

FilterOutputStream
FilterInputStream


Previous | Next | Trail Map | Writing Java Programs | Input and Output Streams