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