Учебники

49) Буферизированный читатель

Как прочитать файл на Java?

Java предоставляет несколько механизмов для чтения из файла. Наиболее полезным пакетом для этого является java.io.Reader.This класс содержит класс BufferedReader в пакете java.io.BufferedReader.

Что такое BufferedReader в Java?

BufferedReader — это класс Java, который считывает текст из потока ввода (например, из файла) путем буферизации символов, которые беспрепятственно читают символы, массивы или строки. Как правило, каждый запрос чтения, сделанный устройством чтения, вызывает выполнение соответствующего запроса чтения базового символа или байтового потока.

Поэтому желательно обернуть BufferedReader вокруг любого Reader, чьи операции read () могут быть дорогостоящими, например, java FileReaders и InputStreamReaders. Типичное использование предполагает передачу пути к файлу в BufferedReader следующим образом:

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

Это в основном загружает ваш файл в objReader.Now, вам нужно будет перебрать содержимое файла и распечатать его.

Цикл while в приведенном ниже коде будет читать файл, пока он не достигнет конца файла

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

strCurrentLine читает текущую строку, а objReader.readLine () возвращает строку. Следовательно, цикл будет повторяться, пока он не станет нулевым.

Пример BufferedReader:

Ниже приведен код полной реализации.

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();
   }
  }
 }
}

Замечания:

Приведенный выше код имеет несколько очень важных обработок, особенно в блоке finally кода.


Этот код обеспечит эффективное управление памятью и вызов метода objReader.close (), который освобождает память.

BufferedReader JDK7 Пример:

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();
  }
 }
}