Filtros

Um filtro de E/S é uma entidade que "envolve" um dispositivo de entrada ou saída agregando, em adição às funcionalidades básicas de transferência, alguma possibilidade de transformação dos dados sendo transferidos.

Em Java, há diversas classes que disponibilizam filtros que podem ser combinados de acordo com a necessidade da aplicação. Por exemplo, a classe DataInputStream é uma extensão de InputStream que implementa a interface DataInput, oferecendo um conjunto de métodos para ler grupos de bytes que serão interpretados como valores de variáveis dos tipos primitivos da linguagem Java. Similarmente, a classe DataOutputStream estende OutputStream e implementa DataOutput.

Outro filtro derivado de OutputStream é oferecido pela classe PrintStream, para converter tipos básicos para uma seqüência de bytes imprimível. Similarmente, a classe PrintWriter estende a classe Writer para converter tipos básicos em seqüências de caracteres. Essas duas classes oferecem os métodos print() e println() com assinaturas contemplando todos os tipos básicos da linguagem.

As funcionalidades básicas associadas a filtros de entrada e saída estão definidas nas classes FilterInputStream, FilterOutputStream, FilterReader e FilterWriter, das quais os filtros concretos são derivados.