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

Освоение Java BufferedReader: эффективная обработка символьных потоков

Класс Java BufferedReader

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

Как работает BufferedReader

Внутренне BufferedReader поддерживает буфер 8192 символов (размер по умолчанию). При операции чтения блок символов извлекается из исходного файла и сохраняется в буфере. Последующие чтения извлекают символы из буфера по одному, резко сокращая количество обращений к диску и ускоряя I/O.

Создание BufferedReader

Импортируйте из java.io и оберните любую реализацию Reader, например FileReader:

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

FileReader file = new FileReader("example.txt");
BufferedReader reader = new BufferedReader(file);

Можно задать пользовательский размер буфера:

BufferedReader reader = new BufferedReader(file, 16384); // 16KB буфер

Ключевые методы BufferedReader

read()

Пример: чтение всего содержимого input.txt в символьный массив:

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

class Main {
    public static void main(String[] args) {
        char[] buffer = new char[100];
        try (FileReader file = new FileReader("input.txt");
             BufferedReader reader = new BufferedReader(file)) {
            reader.read(buffer);
            System.out.println("Данные в файле:\n" + new String(buffer));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Вывод

Данные в файле: This is a line of text inside the file.

skip()

Метод skip(long n) отбрасывает следующие n символов из потока:

reader.skip(5); // пропускает "This "

После пропуска чтение оставшегося содержимого даёт:

Данные после пропуска 5 символов: is a line of text inside the file.

close()

Всегда закрывайте ридер для освобождения системных ресурсов:

reader.close();

Другие полезные методы

МетодОписание
ready()Проверяет, готов ли поток к чтению без блокировки.
mark(int readAheadLimit)Помечает текущую позицию в потоке.
reset()Возвращает поток к последней отмеченной позиции.

Полный справочник: официальная документация Java.

java

  1. Ключевое слово final в Java: переменные, методы и классы
  2. Оператор instanceof в Java: полное руководство с примерами
  3. Статические вложенные классы в Java: использование, отличия и примеры
  4. Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
  5. Паттерн Singleton в Java: как реализовать и безопасно использовать
  6. Рефлексия в Java: инспекция классов, методов и полей во время выполнения
  7. Освоение Java ObjectOutputStream: сериализация, методы и практические примеры
  8. Освоение Java Generics: создание переиспользуемого, типобезопасного кода
  9. Мастерство файловых операций в Java с java.io: создание, чтение, запись и удаление
  10. Чтение файлов в Java с BufferedReader — Практическое руководство с примерами