Tutorial de E/S Java

Tutorial de E/S Java

E/S Java (Entrada e Saída) é usado para processar a entrada e produzir a saída .

Java usa o conceito de fluxo para tornar a operação de E/S rápida. O pacote java.io contém todas as classes necessárias para operações de entrada e saída.

Podemos realizar manipulação de arquivos em Java pela API de E/S Java.

Fluxo

Um fluxo é uma sequência de dados. Em Java, um fluxo é composto de bytes. É chamado de riacho porque é como um riacho que continua fluindo.

Em Java, 3 fluxos são criados automaticamente para nós. Todos esses fluxos estão anexados ao console.

1) Saída do sistema: fluxo de saída padrão

2) Sistema.in: fluxo de entrada padrão

3) Sistema.err: fluxo de erro padrão

Vamos ver o código para imprimir saída e um erro mensagem para o console.

 System.out.println('simple message'); System.err.println('error message');  

Vamos ver o código para obter entrada do console.

 int i=System.in.read();//returns ASCII code of 1st character System.out.println((char)i);//will print the character  
Você sabe?
  • Como gravar dados comuns em vários arquivos usando apenas um único fluxo?
  • Como podemos acessar vários arquivos em um único fluxo?
  • Como podemos melhorar o desempenho da operação de entrada e saída?
  • De quantas maneiras podemos ler dados do teclado?
  • O que significa a classe do console?
  • Como compactar e descompactar os dados de um arquivo?

OutputStream versus InputStream

A explicação das classes OutputStream e InputStream é fornecida abaixo:

Fluxo de saída

O aplicativo Java usa um fluxo de saída para gravar dados em um destino; pode ser um arquivo, um array, um dispositivo periférico ou um soquete.

Fluxo de entrada

O aplicativo Java usa um fluxo de entrada para ler dados de uma origem; pode ser um arquivo, um array, um dispositivo periférico ou um soquete.

Vamos entender o funcionamento de Java OutputStream e InputStream pela figura abaixo.

Java IO

Classe OutputStream

A classe OutputStream é uma classe abstrata. É a superclasse de todas as classes que representam um fluxo de saída de bytes. Um fluxo de saída aceita bytes de saída e os envia para algum coletor.

Métodos úteis de OutputStream

Método Descrição
1) public void write(int)lança IOException é usado para gravar um byte no fluxo de saída atual.
2) public void write(byte[])lança IOException é usado para gravar uma matriz de bytes no fluxo de saída atual.
3) public void flush() lança IOException libera o fluxo de saída atual.
4) public void close() lança IOException é usado para fechar o fluxo de saída atual.

Hierarquia OutputStream

Hierarquia de fluxo de saída Java

Classe InputStream

A classe InputStream é uma classe abstrata. É a superclasse de todas as classes que representam um fluxo de entrada de bytes.

Métodos úteis de InputStream

Método Descrição
1) public abstract int read() lança IOException lê o próximo byte de dados do fluxo de entrada. Ele retorna -1 no final do arquivo.
2) public int disponível() lança IOException retorna uma estimativa do número de bytes que podem ser lidos no fluxo de entrada atual.
3) public void close() lança IOException é usado para fechar o fluxo de entrada atual.

Hierarquia de InputStream

Hierarquia de fluxo de entrada Java