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.