Fluxo de entrada de arquivo Java no Ubuntu 20.04

Fluxo De Entrada De Arquivo Java No Ubuntu 20 04



“Neste artigo, discutiremos diferentes maneiras de ler dados de arquivos em uma matriz de bytes usando a classe Java Input Stream. Essa classe representa um fluxo classificado de bytes de um arquivo. Existem várias funções na classe Java Input Stream que são comumente usadas e serão discutidas neste artigo, como os métodos read(), available(), skip() e close(). Esses métodos são usados ​​para ler arquivos de diferentes extensões como arquivos bin ou txt e podem ser alterados para obter informações de qualquer ponto do arquivo. Estaremos implementando esses métodos no ambiente Ubuntu 20.04 neste artigo.

Existem muitos outros métodos da classe File Input Stream que também são muito úteis para obter dados de um arquivo; alguns deles são int read(byte[] b), esta função lê dados do fluxo de entrada até b.length bytes de comprimento. File Channel obtém o channel(): O objeto File Channel específico conectado ao fluxo de entrada do arquivo é retornado usando-o. Finalize() é usado para garantir que a função close() seja invocada quando não houver mais referência ao fluxo de entrada do arquivo.”

Exemplo 01: Lendo um único byte de um arquivo de texto usando os métodos read() e close() da classe Input Stream

Este exemplo usa File Input Stream para ler um único caractere e imprimir o conteúdo. Suponha que tenhamos um arquivo chamado “file.txt” com o conteúdo mostrado abaixo:









Suponha que tenhamos um arquivo chamado “file.txt” com o conteúdo mostrado acima. Vamos agora tentar ler e imprimir o primeiro caractere do arquivo.







Devemos primeiro importar java.io. Pacote File Input Stream para construir um fluxo de entrada de arquivo. Em seguida, criaremos um novo objeto de File Input Stream que será vinculado ao arquivo especificado (file.txt) na variável “f”.

Neste exemplo, usaremos o método “int read()” da classe Java File Input Stream, que é usado para ler um único byte do arquivo e salvá-lo na variável “I”. Em seguida, o “System.out.print(char(i))” exibe o caractere correspondente a esse byte.



O método f.close() fecha o arquivo e o stream. Obteremos a seguinte saída após construir e executar o script acima, pois podemos ver que apenas a letra inicial do texto “L” é impressa.

Exemplo 02: Lendo todo o conteúdo de um arquivo de texto usando os métodos read() e close() da classe Input Stream

Neste exemplo, estaremos lendo e exibindo todo o conteúdo de um arquivo de texto; como mostrado abaixo:

Mais uma vez, estaremos importando java.io. Pacote File Input Stream para construir um fluxo de entrada de arquivo.

Primeiro, vamos ler o primeiro byte do arquivo e exibir o caractere correspondente dentro do loop while. O loop while será executado até que não haja mais bytes, ou seja, o final do texto no arquivo. A linha 12 lerá o próximo byte e o loop continuará até o último byte do arquivo.

Após compilar e executar o código acima, obteremos os seguintes resultados. Como podemos ver, todo o texto do arquivo “Lorep Ipsum” é exibido no terminal.

Exemplo 03: Determinando o número de bytes disponíveis em um arquivo de texto usando o método available() da classe de fluxo de entrada

Neste exemplo, usaremos a função “available()” do File Input Stream para determinar o número de bytes existentes no fluxo de entrada do arquivo.

Primeiro, geramos um objeto de classe de fluxo de entrada de arquivo chamado “a” com o código a seguir. Na linha 5, utilizamos o método “available()” para determinar e exibir a quantidade total de bytes disponíveis no arquivo. Então, da linha 6 para a linha 8, usamos a função “read()” três vezes. Agora na linha 9, usamos o método “available()” novamente para verificar e exibir os bytes restantes.

Após compilar e executar o código, podemos ver que a primeira linha da saída mostra o número total de bytes disponíveis no arquivo. A próxima linha mostra o número de bytes disponíveis no final do código, que é 3 a menos que os bytes disponíveis no início. Isso ocorre porque usamos o método read três vezes em nosso código.

Exemplo 04: Ignorando bytes de um arquivo de texto para ler dados de um ponto específico usando o método skip() da classe de fluxo de entrada

Neste exemplo, usaremos o método “skip(x)” do File Input Stream, que é usado para ignorar e desconsiderar o número determinado de bytes de dados do fluxo de entrada.

No código abaixo, primeiro, criamos um fluxo de entrada de arquivo e o armazenamos na variável “a”. Em seguida, usamos o método “a.skip(5)”, que irá pular os primeiros 5 bytes do arquivo. Em seguida, imprimimos os caracteres restantes do arquivo usando o método “read()” dentro de um loop while. Por fim, fechamos o fluxo de entrada do arquivo pelo método “close()”.

Abaixo está a captura de tela do terminal após compilar e executar o código. Como podemos ver, apenas “Ipsum” é exibido, pois pulamos os primeiros 5 bytes usando o método “skip()”.

Conclusão

Neste artigo, discutimos os usos da classe File Input Stream e seus diferentes métodos; read(), available(), skip() e close(). Usamos esses métodos para ler o primeiro elemento de um arquivo usando os métodos read() e close(). Em seguida, lemos o arquivo inteiro por meio da abordagem iterativa e usando os mesmos métodos. Em seguida, usamos o método available() para determinar o número de bytes presentes no início e na conclusão do arquivo. Depois disso, usamos o método skip() para pular vários bytes antes de ler o arquivo, o que nos permitiu obter os dados específicos que precisávamos.