РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
847 of 1163 menu

Класс OutputStream

Класс OutputStream - это абстрактный класс, который служит основой для всех классов, предназначенных для записи байтов. Он находится в пакете java.io. Поскольку класс абстрактный, напрямую создать его экземпляр нельзя, однако он определяет набор методов, которые наследуются и реализуются конкретными подклассами, такими как FileOutputStream, ByteArrayOutputStream или BufferedOutputStream. Основная задача этого класса - предоставить единый интерфейс для записи данных в поток. В нем определены такие ключевые методы, как write для записи байтов, flush для принудительной отправки данных из буфера и close для освобождения ресурсов.

Синтаксис

public abstract class OutputStream implements Closeable, Flushable

Класс реализует интерфейсы Closeable и Flushable. Основные методы, которые переопределяются в подклассах:

// Записывает один байт public abstract void write(int b) throws IOException; // Записывает массив байтов public void write(byte[] b) throws IOException; // Записывает часть массива байтов public void write(byte[] b, int off, int len) throws IOException; // Сбрасывает буфер public void flush() throws IOException; // Закрывает поток public void close() throws IOException;

Пример

Рассмотрим пример использования анонимного подкласса OutputStream, который выводит полученные байты в консоль. Мы запишем в него строку "abcde" и вызовем метод flush:

import java.io.IOException; import java.io.OutputStream; public class Main { public static void main(String[] args) { OutputStream os = new OutputStream() { @Override public void write(int b) throws IOException { System.out.print((char) b); } }; try { byte[] data = "abcde".getBytes(); os.write(data); os.flush(); } catch (IOException e) { e.printStackTrace(); } } }

Результат выполнения кода:

"abcde"

Пример

Чаще всего на практике используются готовые подклассы, например FileOutputStream для записи в файл. Давайте запишем строку "12345" в файл test.txt и убедимся, что данные записаны:

import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class Main { public static void main(String[] args) { try (OutputStream os = new FileOutputStream("test.txt")) { byte[] data = "12345".getBytes(); os.write(data); os.flush(); System.out.println("Data written successfully"); } catch (IOException e) { e.printStackTrace(); } } }

Результат выполнения кода:

"Data written successfully"

Смотрите также

  • класс InputStream,
    который является базовым для потоков ввода
  • метод write,
    который записывает байты в поток
  • класс FileOutputStream,
    который записывает байты в файл
  • класс BufferedWriter,
    который эффективно записывает символы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить