Como funciona o Java InputStream

Como Funciona O Java Inputstream



Java permite que os desenvolvedores trabalhem com os arquivos. Nesse caso, o “ InputStream ” entra em vigor a classe que auxilia na leitura do conteúdo do arquivo especificado junto com a análise dos bytes contidos. Isso resulta em lidar com os problemas de memória e também retornar o conteúdo do arquivo seletivo de acordo com o requisito de forma eficiente.

Este artigo detalhará o funcionamento do “InputStream” em Java.







Como funciona o Java InputStream?

A classe “InputStream” do “ java.io ” corresponde a uma superclasse abstrata que retorna um fluxo de entrada composto de bytes no arquivo especificado.



Subclasses de InputStream

Para aplicar as funcionalidades do “InputStream”, podem ser utilizadas suas seguintes subclasses:



    • FileInputStream
    • ObjectInputStream
    • ByteArrayInputStream

É tal que essas subclasses estendem a classe “InputStream”.





Métodos de InputStream

A classe “InputStream” contém diferentes métodos que são aplicados por suas subclasses. A seguir estão alguns dos métodos mais comumente usados:

Métodos Funcionalidade
ler() Ele lê um byte de dados do fluxo de entrada.



read(byte[] array) Ele também lê bytes do fluxo e os armazena na matriz de destino.

pular() Este método ignora/omite o número específico de bytes do fluxo de entrada.

disponível() Ele fornece os bytes contidos no fluxo de entrada.
reiniciar() Dá acesso ao ponto de fluxo onde a marca foi definida.

marca() Este método marca a posição no fluxo até a qual os dados foram lidos.

markSupported() Ele analisa se os métodos “mark()” e “reset()” são suportados/compatíveis no stream.


Antes de partir para o exemplo, importe os seguintes pacotes para trabalhar com o “InputStream” e sua subclasse:

importar java.io.FileInputStream;
importar java.io.InputStream;


Exemplo: Funcionamento de InputStream em Java

Este exemplo ilustra o funcionamento do “InputStream” lendo o conteúdo do arquivo através dos métodos “InputStream”:

fluxo de entrada de classe pública {
public static void main ( Argumentos de string [ ] ) {
byte [ ] dadoarray = novo byte [ cinquenta ] ;
tentar {
InputStream readData = novo FileInputStream ( 'readfile.txt' ) ;
System.out.println ( 'Bytes no arquivo ->' + lerDados.disponível ( ) ) ;
readData.read ( dada matriz ) ;
System.out.println ( 'Ler dados do arquivo: ' ) ;
String contém dados = nova String ( dada matriz ) ;
System.out.println ( contém dados ) ;
readData.close ( ) ;
}
pegar ( Exceção exceto ) {
except.getStackTrace ( ) ;
}
} }


De acordo com as linhas de código acima, execute as etapas abaixo indicadas:

    • Primeiro, crie uma matriz de “bytes” que pode incluir no máximo “ cinquenta ” valores de byte no arquivo de leitura.
    • Na próxima etapa, crie um “ InputStream ” usando “FileInputStream” e retornar os bytes disponíveis no arquivo especificado por meio do associado “ disponível() ” método.
    • Depois disso, leia os bytes do fluxo de entrada usando o comando “ ler() ” método.
    • Agora, converta a matriz de bytes em uma string e exiba o conteúdo do arquivo.
    • Por fim, feche o arquivo de leitura usando o associado “ fechar() ” método.

Saída


Nesse resultado, pode-se inferir que o número de bytes no arquivo, ou seja, o espaço acumulado pelo conteúdo, é retornado de acordo com o intervalo máximo na matriz de bytes, ou seja, “50”. Além disso, o conteúdo do arquivo é retornado adequadamente.

Conteúdo do arquivo


Para obter uma visão geral do “ pular() ' e ' reiniciar() ” métodos, considere a seguinte demonstração:


Nesta ilustração, o método “skip()” pula o número especificado de bytes, ou seja, “ 5 -> Java ” do conteúdo do arquivo desde o início. No entanto, o método “reset()” redefine o fluxo.

Conclusão

O ' InputStream ” classe do “ java.io ” é uma superclasse abstrata que corresponde a um fluxo de entrada de bytes usado para ler os dados do arquivo. Esta classe compreende vários métodos que auxiliam nas metodologias de leitura do arquivo de forma eficaz conforme o requisito. Este blog demonstrou o propósito e funcionamento do “InputStream” em Java.