| |
|
|
Trail: Essential Java Classes
|
Lesson: Reading and Writing (but no 'rithmetic)
|
|
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 :
-
DataInputStream and DataOutputStream
-
BufferedInputStream and BufferedOutputStream
-
LineNumberInputStream
-
PushbackInputStream
-
PrintStream (this is an output stream)
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 or output stream, attach the filtered stream
to another input or output stream.
For example, you can attach a DataInputStream
to the standard input stream as in the following code:
DataInputStream dis = new DataInputStream(System.in);
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.
This page provides and explains an example of using DataInputStream and
DataOutputStream, two filtered streams that can read and write primitive
Java data types.
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. This section
describes an example of how to subclass FileInputStream
and FilterOutputStream to create your own filtered streams.
|
|
|
|
| |
Michel RIVEILL

Laboratoire I3S - Bât. ESSI
930 Route des Colles
06903 Sophia Antipolis CEDEX
email :
riveill at unice.fr
Généralité
Ressources en lignes
Les rubriques des cours :
dernière mise à jour
le 18 septembre 2003
|