Aplicações típicas de entrada e saída envolvem a manipulação de arquivos contendo caracteres. Em Java, a especificação de funcionalidades para manipular esse tipo de arquivo estão contidas nas classes abstratas Reader (e suas classes derivadas) e Writer (e suas classes derivadas), respectivamente para leitura e para escrita de caracteres.