Neste tutorial, aprenderemos sobre a classe Java InputStream e seus métodos com a ajuda de um exemplo.
A InputStreamclasse do java.iopacote é uma superclasse abstrata que representa um fluxo de entrada de bytes.
Por InputStreamser uma classe abstrata, não é útil por si só. No entanto, suas subclasses podem ser usadas para ler dados.
Subclasses de InputStream
Para usar a funcionalidade de InputStream, podemos usar suas subclasses. Alguns deles são:
- FileInputStream
- ByteArrayInputStream
- ObjectInputStream

Aprenderemos sobre todas essas subclasses no próximo tutorial.
Crie um InputStream
Para criar um InputStream, devemos java.io.InputStreamprimeiro importar o pacote. Depois de importar o pacote, aqui está como podemos criar o fluxo de entrada.
// Creates an InputStream InputStream object1 = new FileInputStream();
Aqui, criamos um fluxo de entrada usando FileInputStream. É porque InputStreamé uma classe abstrata. Portanto, não podemos criar um objeto de InputStream.
Nota : Também podemos criar um fluxo de entrada de outras subclasses de InputStream.
Métodos de InputStream
A InputStreamclasse fornece métodos diferentes que são implementados por suas subclasses. Aqui estão alguns dos métodos comumente usados:
read()- lê um byte de dados do fluxo de entradaread(byte() array)- lê bytes do stream e armazena na matriz especificadaavailable()- retorna o número de bytes disponíveis no fluxo de entradamark()- marca a posição no fluxo de entrada até a qual os dados foram lidosreset()- retorna o controle para o ponto no riacho onde a marca foi definidamarkSupported()- verifica se o métodomark()ereset()é compatível com o fluxoskips()- pula e descarta o número especificado de bytes do fluxo de entradaclose()- fecha o fluxo de entrada
Exemplo: InputStream usando FileInputStream
Aqui está como podemos implementar InputStreamusando a FileInputStreamclasse.
Suponha que temos um arquivo denominado input.txt com o seguinte conteúdo.
This is a line of text inside the file.
Vamos tentar ler este arquivo usando FileInputStream(uma subclasse de InputStream).
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("Available bytes in the file: " + input.available()); // Read byte from the input stream input.read(array); System.out.println("Data read from the file: "); // Convert byte array into string String data = new String(array); System.out.println(data); // Close the input stream input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Resultado
Available bytes in the file: 35 Data read from the file: This is a line of text inside the file
No exemplo acima, criamos um fluxo de entrada usando a FileInputStreamclasse. O fluxo de entrada está vinculado ao arquivo input.txt .
InputStream input = new FileInputStream("input.txt");
Para ler os dados do arquivo input.txt , implementamos esses dois métodos.
input.read(array); // to read data from the input stream input.close(); // to close the input stream
Para saber mais, visite Java InputStream (documentação oficial do Java).








