0Pricing
Java Academy · Урок

Буферизованные потоки

Изучите буферизованные потоки: BufferedInputStream и BufferedOutputStream для эффективного ввода-вывода байтов.

«Буферизованные потоки» — бесплатный урок Java Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 3 уроков всего.

Введение

Буферизованные потоки ускоряют ввод-вывод файлов. Они объединяют множество небольших операций чтения и записи в более крупные операции.

Концепция BufferedInputStream

BufferedInputStream оборачивает InputStream и считывает блоки байтов в память. Чтение становится быстрее при большом количестве небольших вызовов.

Код: BufferedInputStream

Этот код считывает байты из файла с буферизацией. В выводе значения байтов разделены пробелами.

public class Main {
  public static void main(String[] args) {
    java.nio.file.Path p = java.nio.file.Paths.get("data.bin");
    try (java.io.BufferedInputStream bis = new java.io.BufferedInputStream(java.nio.file.Files.newInputStream(p))) {
      int b;
      while ((b = bis.read()) != -1) {
        System.out.print(b + " ");
      }
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

Концепция BufferedOutputStream

BufferedOutputStream накапливает байты в памяти перед записью. Это уменьшает количество операций записи на диск.

Код: BufferedOutputStream

Этот код записывает пять байтов в out.bin. BufferedOutputStream сбрасывает данные блоками для повышения эффективности.

public class Main {
  public static void main(String[] args) {
    java.nio.file.Path p = java.nio.file.Paths.get("out.bin");
    try (java.io.BufferedOutputStream bos = new java.io.BufferedOutputStream(java.nio.file.Files.newOutputStream(p))) {
      for (int i = 0; i < 5; i++) {
        bos.write(i); // write 5 bytes
      }
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

Код: копирование с буферизованными потоками

Буферизованные потоки делают копирование файлов простым и эффективным. Файл считывается и записывается с использованием байтовых буферов.

public class Main {
  public static void main(String[] args) {
    java.nio.file.Path in = java.nio.file.Paths.get("data.bin");
    java.nio.file.Path out = java.nio.file.Paths.get("copy.bin");
    try (java.io.BufferedInputStream bis = new java.io.BufferedInputStream(java.nio.file.Files.newInputStream(in));
         java.io.BufferedOutputStream bos = new java.io.BufferedOutputStream(java.nio.file.Files.newOutputStream(out))) {
      int b;
      while ((b = bis.read()) != -1) {
        bos.write(b);
      }
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

Проверка буферизованных потоков

Быстрая проверка: зачем использовать BufferedInputStream или BufferedOutputStream?

Повторение

Повторение: буферизованные потоки повышают производительность, объединяя небольшие операции чтения и записи в более крупные операции.

Часто задаваемые вопросы

Урок «Буферизованные потоки» бесплатный?

Да — полный текст урока «Буферизованные потоки» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 3 уроков всего.

Чему я научусь в уроке «Буферизованные потоки»?

Изучите буферизованные потоки: BufferedInputStream и BufferedOutputStream для эффективного ввода-вывода байтов. Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Java Academy?

Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.

Сколько времени занимает урок «Буферизованные потоки»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Java Academy?

Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. java.nio.file Path и Files
  2. Чтение и запись текстовых файлов
  3. Буферизованные потоки
← Назад к Java Academy