Java BufferedReader: Como ler arquivos em Java com exemplo

Como ler um arquivo em Java?

Java fornece vários mecanismos para ler arquivos. O pacote mais útil fornecido para isso é o java.io.Reader. Esta classe contém a classe Java BufferedReader no pacote java.io.BufferedReader

O que é a BufferedReader em Java?

BufferedReader é uma classe Java para ler o texto de um fluxo de entrada (como um arquivo) por buffercaracteres que lêem perfeitamente caracteres, matrizes ou linhas. Em geral, cada solicitação de leitura feita por um Reader faz com que uma solicitação de leitura correspondente seja feita do caracter subjacente ou fluxo de bytes.

Portanto, é aconselhável embrulhar BufferedReader em Java em torno de qualquer Reader cujas operações read() possam ser caras, como java FileReaders e InputStreamReaders. Um uso típico envolveria passar o caminho do arquivo para o BufferedReader em Java da seguinte forma:

objReader = new BufferedReader(new FileReader("D:\DukesDiary.txt"));
//Assuming you have a text file in D drive

Isso basicamente carrega seu arquivo no objReader. Agora, você precisará percorrer o conteúdo do arquivo e imprimi-lo.

A loop while no código abaixo irá ler o arquivo até chegar ao final do arquivo

while ((strCurrentLine = objReader.readLine()) != null) {
    System.out.println(strCurrentLine);
}

strCurrentLine lê a linha atual e a função Java readLine objReader.readLine() retorna uma string. Conseqüentemente, o loop irá iterar até que não seja nulo.

BufferExemplo de edReader

Abaixo o código é um Java BufferExemplo de edReader que mostra a implementação completa:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFileExample {

 public static void main(String[] args) {
  BufferedReader objReader = null;
  try {
   String strCurrentLine;

   objReader = new BufferedReader(new FileReader("D:\\DukesDiary.txt"));

   while ((strCurrentLine = objReader.readLine()) != null) {

    System.out.println(strCurrentLine);
   }

  } catch (IOException e) {

   e.printStackTrace();

  } finally {

   try {
    if (objReader != null)
     objReader.close();
   } catch (IOException ex) {
    ex.printStackTrace();
   }
  }
 }
}

Nota:

O código acima tem algumas manipulações muito importantes, especialmente no bloco final do código.

Este código garantirá que o gerenciamento de memória é feito de forma eficiente e o método objReader.close() é chamado, liberando a memória.

BufferExemplo de edReader JDK7

Abaixo está o exemplo de Java Read Files usando Bufferclasse edReader

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFileExample_jdk7 {

 private static final String FILENAME = "D:\\DukesDiary.txt";

 public static void main(String[] args) {

  try (BufferedReader br = new BufferedReader(new FileReader(FILENAME))) {

   String strCurrentLine;

   while ((strCurrentLine = br.readLine()) != null) {
    System.out.println(strCurrentLine);
   }

  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}