Classe Java InputStream
Classe Java InputStream
Neste tutorial, aprenderemos sobre a classe Java InputStream e seus métodos com a ajuda de um exemplo.
O InputStream
classe do java.io
package é uma superclasse abstrata que representa um fluxo de entrada de bytes.
Desde InputStream
é 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
Vamos aprender sobre todas essas subclasses no próximo tutorial.
Criar um fluxo de entrada
Para criar um InputStream, devemos importar o
java.io.InputStream
pacote primeiro. 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
. Observação :Também podemos criar um fluxo de entrada de outras subclasses de
InputStream
. Métodos de InputStream
O
InputStream
classe fornece diferentes métodos 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 fluxo e armazena no array especificadoavailable()
- 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 ao ponto no fluxo onde a marca foi definidamarkSupported()
- verifica se omark()
ereset()
O método é suportado no streamskips()
- pula e descarta o número especificado de bytes do fluxo de entradaclose()
- fecha o fluxo de entrada
Exemplo:InputStream usando FileInputStream
Veja como podemos implementar
InputStream
usando o FileInputStream
classe. Suponha que temos um arquivo chamado 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;
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();
}
}
}
Saída
Available bytes in the file: 39
Data read from the file:
This is a line of text inside the file
No exemplo acima, criamos um fluxo de entrada usando o
FileInputStream
classe. O fluxo de entrada está vinculado ao arquivo input.txt .
InputStream input = new FileInputStream("input.txt");
Para ler dados do input.txt arquivo, 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).
Java