Класс 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
- См. также:
Краткое описание полей
Поля, объявленные в классе FilterOutputStream
out | Модификатор и тип | Поле | Описание |
|---|---|---|
protected OutputStream |
out |
Базовый выходной поток, к которому применяется фильтрация. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает CipherOutputStream на основе OutputStream без указания объекта Cipher. |
|
| Создает CipherOutputStream на основе OutputStream и объекта Cipher. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает этот выходной поток и освобождает все системные ресурсы, связанные с ним. |
void |
flush() |
Сбрасывает этот выходной поток, записывая все буферизованные выходные байты, уже обработанные инкапсулированным объектом Cipher. |
void |
write |
Записывает b.length байт из указанного массива байтов в этот выходной поток. |
void |
write |
Записывает len байт из указанного массива байтов, начиная со смещения off, в этот выходной поток. |
void |
write |
Записывает указанный байт в этот выходной поток. |
Методы, объявленные в классе OutputStream
nullOutputStream | Модификатор и тип | Метод | Описание |
|---|---|---|
static OutputStream |
nullOutputStream() |
Возвращает новый OutputStream, который отбрасывает все байты. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удален в будущей версии. Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает значение хеш-кода этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать до пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения указанного промежутка времени. |
final void |
wait |
Заставляет текущий поток ожидать до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения указанного промежутка времени. |
Подробное описание конструкторов
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
public void write(byte[] b, int off, int len) throws IOException
len байт из указанного массива байтов, начиная со смещения off, в этот выходной поток.- Переопределяет:
-
writeв классеFilterOutputStream - Параметры:
-
b— данные. -
off— начальное смещение в данных. -
len— количество записываемых байтов. - Исключения:
-
IOException— если возникает ошибка ввода-вывода. - См. также:
flush
public void flush() throws IOException
Cipher. Байты, буферизованные инкапсулированным объектом Cipher и ожидающие обработки этим объектом, записаны не будут. Например, если инкапсулированный объект Cipher — блочный шифр, а общее количество байтов, записанных с помощью одного из методов write, меньше размера блока шифра, ни один байт записан не будет.
- Определено в:
-
flushв интерфейсеFlushable - Переопределяет:
-
flushв классеFilterOutputStream - Исключения:
-
IOException— если возникает ошибка ввода-вывода. - См. также:
close
public void close() throws IOException
Этот метод вызывает метод doFinal инкапсулированного объекта Cipher, в результате чего обрабатываются все байты, буферизованные инкапсулированным объектом Cipher. Результат записывается вызовом метода flush этого выходного потока.
Этот метод возвращает инкапсулированный объект Cipher в исходное состояние и вызывает метод close базового выходного потока.
- Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеCloseable - Переопределяет:
-
closeв классеFilterOutputStream - Исключения:
-
IOException— если возникает ошибка ввода-вывода. - См. также:
© 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.