Classe Java BufferedReader
Classe Java BufferedReader
Neste tutorial, aprenderemos sobre o Java BufferedReader e seus métodos com a ajuda de exemplos.
O BufferedReader
classe do java.io
pacote pode ser usado com outros leitores para ler dados (em caracteres) de forma mais eficiente.
Ele estende a classe abstrata Reader
.
" "
Funcionamento do BufferedReader
O
BufferedReader
mantém um buffer interno de 8192 caracteres . Durante a operação de leitura em
BufferedReader
, um pedaço de caracteres é lido do disco e armazenado no buffer interno. E dos caracteres do buffer interno são lidos individualmente. Assim, o número de comunicação com o disco é reduzido. É por isso que a leitura de caracteres é mais rápida usando
BufferedReader
. Criar um BufferedReader
Para criar um
BufferedReader
, devemos importar o java.io.BuferedReader
pacote primeiro. 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
chamado buffer com o FileReader
chamado arquivo . Aqui, o buffer interno do
BufferedReader
tem o tamanho padrão de 8192 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
O
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 armazena no array especificadoread(char[] array, int start, int length)
- lê o número de caracteres igual a comprimento do leitor e armazena no array especificado a partir da posição start
Por exemplo, 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 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();
}
}
}
Saída
Data in the file: This is a line of text inside the file.
No exemplo acima, criamos um leitor em buffer chamado input . O leitor em buffer está vinculado ao input.txt Arquivo.
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 em 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();
}
}
}
Saída
Data after skipping 5 characters: is a line of text inside the file.
No exemplo acima, usamos o
skip()
método para pular 5 caracteres do leitor de arquivos. Portanto, os caracteres 'T'
, 'h'
, 'i'
, 's'
e ' '
são ignorados do arquivo original. método close()
Para fechar o leitor em buffer, podemos usar o
close()
método. Uma vez que o close()
é 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() | marcar a posição no leitor até a qual os dados foram lidos |
reset() | retorna o controle ao ponto no leitor onde a marca foi definida |
Para saber mais, visite Java BufferedReader (documentação oficial do Java).
Java