Spec-Zone.ru › OpenJDK 25

Класс CipherOutputStream

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
javax.crypto.CipherOutputStream
Все реализованные интерфейсы:
Closeable, Flushable, AutoCloseable
public class CipherOutputStream extends FilterOutputStream
CipherOutputStream состоит из OutputStream и объекта Cipher, поэтому методы write() сначала обрабатывают данные, а затем записывают их в нижележащий OutputStream. Объект Cipher должен быть полностью инициализирован до его использования CipherOutputStream.

Например, если объект Cipher инициализирован для шифрования, CipherOutputStream попытается зашифровать данные перед записью зашифрованных данных.

Этот класс строго придерживается семантики, особенно семантики ошибок, своих классов-предков java.io.OutputStream и java.io.FilterOutputStream. Этот класс содержит ровно те методы, которые определены в его классах-предках, и переопределяет их все. Кроме того, этот класс перехватывает все исключения, которые не выбрасываются его классами-предками. В частности, этот класс перехватывает BadPaddingException и другие исключения, возникающие при неудачной проверке целостности во время расшифрования. Эти исключения не выбрасываются повторно, поэтому клиент не будет уведомлен о сбое проверки целостности. В связи с таким поведением этот класс может быть непригоден для использования при расшифровании в режиме с аутентификацией (например, GCM), если приложению требуется явное уведомление о сбое аутентификации. Такое приложение может использовать API Cipher напрямую вместо этого класса.

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

Начиная с:
1.4
См. также:
  • OutputStream
  • FilterOutputStream
  • Cipher
  • CipherInputStream

Краткое описание полей

Поля, объявленные в классе FilterOutputStream

out

Краткое описание конструкторов

CipherOutputStream(OutputStream os)
CipherOutputStream(OutputStream os, Cipher c)
Модификатор Конструктор Описание
protected
Создает CipherOutputStream из OutputStream без указания объекта Cipher.
Создает CipherOutputStream из OutputStream и объекта Cipher.

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Закрывает этот выходной поток и освобождает все системные ресурсы, связанные с ним.
void flush()
Сбрасывает этот выходной поток, принудительно записывая все буферизованные выходные байты, которые уже были обработаны инкапсулированным объектом Cipher.
void write(byte[] b)
Записывает b.length байт из указанного массива байтов в этот выходной поток.
void write(byte[] b, int off, int len)
Записывает len байт из указанного массива байтов, начиная со смещения off, в этот выходной поток.
void write(int b)
Записывает указанный байт в этот выходной поток.

Методы, объявленные в классе OutputStream

nullOutputStream

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

CipherOutputStream

public CipherOutputStream(OutputStream os, Cipher c)
Создает CipherOutputStream из OutputStream и объекта Cipher.
Примечание: если указанный выходной поток или шифр равен null, позднее при их использовании может быть выброшено a NullPointerException.
Параметры:
os — объект OutputStream
c — инициализированный объект Cipher

CipherOutputStream

protected CipherOutputStream(OutputStream os)
Создает CipherOutputStream из OutputStream без указания объекта Cipher. В результате создается CipherOutputStream с использованием NullCipher.
Примечание: если указанный выходной поток равен null, позднее при его использовании может быть выброшено NullPointerException.
Параметры:
os — объект OutputStream

Подробное описание методов

write

public void write(int b) throws IOException
Записывает указанный байт в этот выходной поток.
Переопределяет:
write в классе FilterOutputStream
Параметры:
b — byte.
Выбрасывает:
IOException — если произошла ошибка ввода-вывода.

write

public void write(byte[] b) throws IOException
Записывает b.length байт из указанного массива байтов в этот выходной поток.

Метод write класса CipherOutputStream вызывает трехаргументный метод write с аргументами b, 0 и b.length.

Переопределяет:
write в классе FilterOutputStream
Параметры:
b — данные.
Выбрасывает:
NullPointerException — если b равен null.
IOException — если произошла ошибка ввода-вывода.
См. также:
  • write(byte[], int, int)

write

public void write(byte[] b, int off, int len) throws IOException
Записывает len байт из указанного массива байтов, начиная со смещения off, в этот выходной поток.
Переопределяет:
write в классе FilterOutputStream
Параметры:
b — данные.
off — начальное смещение в данных.
len — количество байтов для записи.
Выбрасывает:
IOException — если произошла ошибка ввода-вывода.
См. также:
  • FilterOutputStream.write(int)

flush

public void flush() throws IOException
Сбрасывает этот выходной поток, принудительно записывая все буферизованные выходные байты, которые уже были обработаны инкапсулированным объектом Cipher.

Байты, буферизованные инкапсулированным объектом Cipher и ожидающие обработки этим объектом, записаны не будут. Например, если инкапсулированный объект Cipher является блочным шифром, а общее количество байтов, записанных с помощью одного из методов write, меньше размера блока шифра, байты записаны не будут.

Определено в:
flush в интерфейсе Flushable
Переопределяет:
flush в классе FilterOutputStream
Выбрасывает:
IOException — если произошла ошибка ввода-вывода.
См. также:
  • FilterOutputStream.out

close

public void close() throws IOException
Закрывает этот выходной поток и освобождает все системные ресурсы, связанные с ним.

Этот метод вызывает метод doFinal инкапсулированного объекта Cipher, в результате чего обрабатываются все байты, буферизованные инкапсулированным объектом Cipher. Результат записывается вызовом метода flush этого выходного потока.

Этот метод сбрасывает инкапсулированный объект Cipher в исходное состояние и вызывает метод close нижележащего выходного потока.

Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Переопределяет:
close в классе FilterOutputStream
Выбрасывает:
IOException — если произошла ошибка ввода-вывода.
См. также:
  • FilterOutputStream.flush()
  • FilterOutputStream.out

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, где приведены более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/javax/crypto/CipherOutputStream.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API