English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Java

Controle de fluxo Java

Array Java

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Lista Java (List)

Java Queue (Fila)

Conjunto Map do Java

Conjunto Java

Java Entrada e Saída (I)/O)

Reader do Java/Writer

Outros tópicos do Java

Java Classe InputStream

Neste tutorial, vamos aprender sobre a classe InputStream do Java e seus métodos por meio de um exemplo.

A classe InputStream do pacote java.io é uma superclasse abstrata que representa um fluxo de entrada de bytes.

Como o InputStream é uma classe abstrata, ele não é útil por si só. No entanto, suas subclasses podem ser usadas para ler dados.

Subclasses do InputStream

Para usar as funções do InputStream, podemos usar suas subclasses. Suas subclasses incluem:

No próximo tutorial, vamos aprender todos esses subclasses.

Criar um InputStream

Para criar um InputStream,我们必须 primeiro importar o pacote java.io.InputStream. Após a importação do pacote, podemos criar o fluxo de entrada.

// Criar um InputStream
InputStream object1 = new FileInputStream();

Aqui, usamos FileInputStream para criar um fluxo de entrada. Isso é porque InputStream é uma classe abstrata. Portanto, não podemos criar objetos InputStream.

Atenção: Também podemos criar fluxos de entrada a partir de outras subclasses de InputStream.

Métodos de InputStream

A classe InputStream fornece métodos diferentes implementados por suas subclasses. Aqui estão alguns métodos comuns

  • read(); - Ler um byte de dados do fluxo de entrada

  • read(byte[] array); - Ler bytes do fluxo e armazená-los no array especificado

  • available(); - Retornar o número de bytes disponíveis no fluxo de entrada

  • mark(); - Marcar a posição de dados no fluxo de entrada

  • reset(); -Retornar o ponto de controle para o local onde foi definida a marca no fluxo

  • markSupported();- Verificar se o fluxo suporta os métodos mark() e reset()

  • skips(); - Pular e descartar um número específico de bytes do fluxo de entrada

  • close(); - Fechar Fluxo de Entrada

Exemplo: Uso de InputStream com FileInputStream

A seguir está a implementação do método InputStream usando a classe FileInputStream.

Suponha que tenhamos um arquivo chamadoinput.txtdo arquivo, contendo o seguinte conteúdo.

Esta é uma linha de texto no arquivo.

Vamos tentar usar FileInputStream (subclasse de InputStream) para ler este arquivo.

import java.io.FileInputStream;
import java.io.InputStream;
public class Main {
    public static void main(String args[]) {
        byte[] array = new byte[100];
        try {
            InputStream input = new FileInputStream("input.txt");
            System.out.println("Bytes disponíveis no arquivo:"); + input.available());
            //Ler bytes do fluxo de entrada
            input.read(array);
            System.out.println("Lendo dados do arquivo:");
            //Converter Array de Bytes para String
            String data = new String(array);
            System.out.println(data);
            //Fechar Fluxo de Entrada
            input.close();
        }
        catch (Exception e) {
            e.getStackTrace();
        }
    }
}

Resultados de Saída

Bytes Disponíveis no Arquivo: 35
Dados Lidos do Arquivo:
Esta é uma linha de texto no arquivo.

No exemplo acima, usamos a classe FileInputStream para criar o fluxo de entrada. O fluxo de entrada está associado ao arquivoinput.txtLink.

InputStream input = new FileInputStream("input.txt");

Parainput.txtPara ler dados de um arquivo, implementamos esses métodos.

input.read(array);      //Ler Dados do Fluxo de Entrada
input.close();             //Fechar Fluxo de Entrada