Neste tutorial, aprenderemos sobre Java BufferedReader e seus métodos com a ajuda de exemplos.
A BufferedReader
classe do java.io
pacote pode ser usada com outros leitores para ler dados (em caracteres) de forma mais eficiente.
Ele estende a classe abstrata Reader
.
Trabalho de BufferedReader
O BufferedReader
mantém um buffer interno de 8.192 caracteres .
Durante a operação de leitura em BufferedReader
, um bloco de caracteres é lido do disco e armazenado no buffer interno. E a partir do buffer interno, os caracteres são lidos individualmente.
Conseqüentemente, o número de comunicação com o disco é reduzido. É por isso que ler caracteres é mais rápido usando BufferedReader
.
Crie um BufferedReader
Para criar um BufferedReader
, devemos java.io.BuferedReader
primeiro importar o pacote. Depois de importar o pacote, aqui está como podemos criar o leitor.
// Creates a FileReader FileReader file = new FileReader(String file); // Creates a BufferedReader BufferedReader buffer = new BufferedReader(file);
No exemplo acima, criamos um BufferedReader
buffer nomeado com o FileReader
arquivo nomeado.
Aqui, o buffer interno do BufferedReader
tem o tamanho padrão de 8.192 caracteres. No entanto, também podemos especificar o tamanho do buffer interno.
// Creates a BufferdReader with specified size internal buffer BufferedReader buffer = new BufferedReader(file, int size);
O buffer ajudará a ler os caracteres dos arquivos mais rapidamente.
Métodos de BufferedReader
A BufferedReader
classe fornece implementações para diferentes métodos presentes em Reader
.
Método read ()
read()
- lê um único caractere do buffer interno do leitorread(char() array)
- lê os caracteres do leitor e os armazena na matriz especificadaread(char() array, int start, int length)
- lê o número de caracteres igual ao comprimento do leitor e armazena na matriz especificada a partir da posição inicial
Por exemplo, suponha que temos um arquivo denominado input.txt com o seguinte conteúdo.
This is a line of text inside the file.
Vamos tentar ler o arquivo usando BufferedReader
.
import java.io.FileReader; import java.io.BufferedReader; class Main ( public static void main(String() args) ( // Creates an array of character char() array = new char(100); try ( // Creates a FileReader FileReader file = new FileReader("input.txt"); // Creates a BufferedReader BufferedReader input = new BufferedReader(file); // Reads characters input.read(array); System.out.println("Data in the file: "); System.out.println(array); // Closes the reader input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Resultado
Dados no arquivo: Esta é uma linha de texto dentro do arquivo.
No exemplo acima, criamos um leitor de buffer chamado input. O leitor armazenado em buffer está vinculado ao arquivo input.txt .
FileReader file = new FileReader("input.txt"); BufferedReader input = new BufferedReader(file);
Aqui, usamos o read()
método para ler uma matriz de caracteres do buffer interno do leitor com buffer.
Método skip ()
Para descartar e pular o número especificado de caracteres, podemos usar o skip()
método. Por exemplo,
import java.io.FileReader; import java.io.BufferedReader; public class Main ( public static void main(String args()) ( // Creates an array of characters char() array = new char(100); try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileReader file = new FileReader("input.txt"); // Creates a BufferedReader BufferedReader input = new BufferedReader(file); // Skips the 5 characters input.skip(5); // Reads the characters input.read(array); System.out.println("Data after skipping 5 characters:"); System.out.println(array); // closes the reader input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Resultado
Dados após pular 5 caracteres: é uma linha de texto dentro do arquivo.
No exemplo acima, usamos o skip()
método para pular 5 caracteres do leitor de arquivos. Assim, os personagens 'T'
, 'h'
, 'i'
, 's'
e ' '
são ignorados a partir do arquivo original.
Método close ()
Para fechar o leitor com buffer, podemos usar o close()
método. Depois que o close()
método é chamado, não podemos usar o leitor para ler os dados.
Outros métodos de BufferedReader
Método | Descrição |
---|---|
ready() | verifica se o leitor de arquivos está pronto para ser lido |
mark() | marque a posição no leitor até a qual os dados foram lidos |
reset() | retorna o controle para o ponto no leitor onde a marca foi definida |
Para saber mais, visite Java BufferedReader (documentação oficial do Java).