Trabajar con Streams Filtrados
Añadimos un stream filtrado a otro stream para filtrar los datos que están siendo leídos o escritos desde el stream original.
El paquete java.io contiene estos streams filtrados que son subclases de
FilterInputStream o FilterOutputStream.
- DataInputStream y DataOutputStream
- BufferedInputStream y BufferedOutputStream
- LineNumberInputStream
- PushbackInputStream
- PrintStream (este es un estream de salida)
Esta sección muestra cómo usar streams filtrados a través de un ejemplo que usa un DataInputStream y un DataOutputStream. Además, esta sección muestra como escribir nuestros propios streams filtrados.
Usar Streams Filtrados
Para usar un stream de entrada o salida filtrado, adjuntamos el stream filtrado a otro stream de entrada o salida.
Por ejemplo, podemos adjuntar un DataInputStream al stream de entrada estándar con el siguiente código:
DataInputStream dis = new DataInputStream(System.in);
String input;
while ((input = dis.readLine()) != null) {
. . . // do something interesting here
}
Podríamos hacer esto para poder usar los métodos readXXX más convenientes, como un readLine, implementado por DataInputStream.
Esta página cubre y explica un ejemplo de uso de DataInputStream y
DataOutputStream, dos streams filtrados que pueden leer y escribir tipos de datos primitivos de Java.
Muchos programadores podrían encontrar que necesitan implementar sus propios streams que filtren o procesen datos que están siendo leídos o escritos desde un stream. Algunas veces el proceso es independiente del formato de los datos, como el contaje de varios ítems de un stream, y algunas veces el proceso está relacionado directamente con los propios datos o su formato, como la lectura y escritura de datos que están contenidos en filas y columnas. Frecuentemente, estos programadores, subclasifican FilterOutputStream y
FilterInputStream para conseguir sus objetivos. Esta sección describe un ejemplo de cómo subclasificar FileInputStream y FilterOutputStream para crear nuestos propios filtros.