Entrada e saída

Por entrada e saída subentende-se o conjunto de mecanismos oferecidos para que um programa executando em um computador consiga respectivamente obter e fornecer informação de dispositivos externos ao ambiente de execução, composto pelo processador e memória principal.

De forma genérica, havendo um dispositivo de entrada de dados habilitado, o programa obtém dados deste dispositivo através de uma operação read(). Similarmente, um dado pode ser enviado para um dispositivo de saída habilitado através de uma operação write().

Estratégia básica de entrada e saída

A manipulação de entrada e saída de dados em Java é suportada através de classes do pacote java.io. Essas classes oferecem as funcionalidades para manipular a entrada e saída de bytes, adequadas para a transferência de dados binários, e para manipular a entrada e saída de caracteres, adequadas para a transferência de textos. Sendo Java uma linguagem de programação orientada a objetos, seria de se esperar que, além das funcionalidades usuais de entrada e saída, ela oferecesse também alguma funcionalidade para transferência de objetos. O mecanismo de serialização suporta essa funcionalidade.

Como a velocidade de operação de dispositivos de entrada e saída é várias ordens de grandeza mais lenta que a velocidade de processamento, buffers são tipicamente utilizados para melhorar a eficiência dessas operações de leitura e escrita. Outra funcionalidade associada à transferência de dados está relacionada à conversão de formatos, tipicamente entre texto e o formato interno de dados binários. Essa e outras funcionalidades são suportadas através do oferecimento de filtros que podem ser agregados aos objetos que correspondem aos mecanismos elementares de entrada e saída.

Um dispositivo de entrada e saída de vital importância é disco, manipulado pelo sistema operacional e por linguagens de programação através do conceito de arquivos. Dois dispositivos básicos de entrada e saída associados a qualquer processo são o teclado (entrada) e o monitor (saída), habilitados pelo sistema operacional no início da execução de qualquer programa como os dispositivos padrões.