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.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.