Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Чтение файлов в Java с BufferedReader — Практическое руководство с примерами

Как читать файл в Java?

Java предлагает множество I/O-классов для файловых операций. Наиболее эффективный способ чтения текстовых файлов — через java.io.BufferedReader, который оборачивает низкоуровневый Reader и буферизует ввод для уменьшения дорогих системных вызовов.

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

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

Поскольку методы вроде read() у FileReader или InputStreamReader могут быть затратными, оборачивание их в BufferedReader — распространенная практика для повышения производительности.

Типичный паттерн использования выглядит так:

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

Здесь файл открывается и буферизуется для эффективного чтения.

Для отображения содержимого файла итерируйте по каждой строке до достижения конца файла:

String currentLine;
while ((currentLine = reader.readLine()) != null) {
    System.out.println(currentLine);
}

Цикл завершается, когда readLine() возвращает null, указывая на достижение конца файла.

Пример BufferedReader (до JDK 7)

Ниже приведен полный, готовый к продакшену пример, демонстрирующий лучшие практики обработки ресурсов:

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

public class ReadFileExample {
    public static void main(String[] args) {
        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new FileReader("D:\\DukesDiary.txt"));
            String currentLine;
            while ((currentLine = reader.readLine()) != null) {
                System.out.println(currentLine);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
}

Блок finally гарантирует, что reader закрыт, освобождая системные ресурсы даже при возникновении исключения.

Пример BufferedReader (JDK 7+ с Try-With-Resources)

С Java 7 и выше оператор try-with-resources упрощает очистку. Следующий пример показывает ту же логику в более лаконичной форме:

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

public class ReadFileExampleJDK7 {
    private static final String FILENAME = "D:\\DukesDiary.txt";
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader(FILENAME))) {
            String currentLine;
            while ((currentLine = br.readLine()) != null) {
                System.out.println(currentLine);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Использование try-with-resources автоматически закрывает BufferedReader, делая код чище и менее подверженным ошибкам.

java

  1. Освоение Java BufferedReader: эффективная обработка символьных потоков
  2. Мастерство файловых операций в Java с java.io: создание, чтение, запись и удаление
  3. Java Hello World: пошаговое руководство по написанию первой программы
  4. Метод String.length() в Java: как получить длину строки (пример)
  5. Понимание String.charAt() в Java: синтаксис, возвращаемый тип, исключения и пример
  6. Освоение String.compareTo() в Java: синтаксис, сценарии использования и примеры
  7. Метод String.contains() в Java: как проверить наличие подстроки — примеры
  8. Освоение String.endsWith() в Java: проверка суффиксов строки с примерами
  9. Алгоритм сортировки вставками в Java: понятный пример и пошаговое руководство
  10. Сортировка выбором в Java: пошаговый пример и полный код