Класс CipherOutputStream
- Все реализуемые интерфейсы:
-
Closeable,Flushable,AutoCloseable
public class CipherOutputStream extends FilterOutputStream
Например, если объект шифрования инициализирован для шифрования, поток вывода попытается зашифровать данные перед записью зашифрованных данных.
Этот класс строго придерживается семантики, в особенности семантики ошибок, своих предковых классов java.io.OutputStream и java.io.FilterOutputStream. Этот класс имеет ровно те методы, которые определены в предковых классах и переопределяет их все. Более того, этот класс перехватывает все исключения, которые не выбрасываются его предковыми классами. В частности, этот класс перехватывает BadPaddingException и другие исключения, вызванные ошибками целостности при дешифровании. Эти исключения не перебрасываются, поэтому клиент не будет проинформирован о сбоях проверок целостности. Из-за этого поведения этот класс может не подойти для использования при дешифровании в аутентифицированном режиме работы (например, GCM), если приложение требует явного уведомления о сбоях аутентификации. Такое приложение может напрямую использовать API Cipher как альтернативу этому классу.
Для программистов, использующих этот класс, крайне важно не использовать методы, которые не определены или не переопределены в этом классе (например, новый метод или конструктор, который позже будет добавлен в один из суперклассов), поскольку дизайн и реализация этих методов, скорее всего, не учитывают влияние на безопасность в отношении CipherOutputStream.
- С момента:
- 1.4
- См. также:
Краткое описание полей
Поля, объявленные в классе java.io.FilterOutputStream
out
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт CipherOutputStream из OutputStream без указания объекта Cipher. |
|
| Создаёт CipherOutputStream из OutputStream и объекта Cipher. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает этот поток вывода и высвобождает любые системные ресурсы, связанные с этим потоком. |
void |
flush() |
Очищает этот поток вывода, заставляя любые буферизованные байты вывода, которые уже были обработаны заключённым объектом Cipher, быть записанными. |
void |
write |
Записывает указанное количество байт из заданного массива байтов в этот поток вывода. |
void |
write |
Записывает указанное количество байт из заданного массива байтов, начиная с указанного смещения, в этот поток вывода. |
void |
write |
Записывает указанный байт в этот поток вывода. |
Методы, объявленные в классе java.io.OutputStream
nullOutputStream
Подробное описание конструкторов
CipherOutputStream
public CipherOutputStream(OutputStream os, Cipher c)
Примечание: если указанный поток вывода или шифр
null, то a NullPointerException может быть выброшен позже при их использовании.- Параметры:
-
os- объектOutputStream -
c- инициализированный объектCipher
CipherOutputStream
protected CipherOutputStream(OutputStream os)
Примечание: если указанный поток вывода
null, то NullPointerException может быть выброшен позже при его использовании.- Параметры:
-
os- объектOutputStream
Подробное описание методов
write
public void write(int b) throws IOException
- Переопределяет:
-
writeв классеFilterOutputStream - Параметры:
-
b- байт. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
write
public void write(byte[] b) throws IOException
Метод write объекта OutputStream вызывает метод write с тремя аргументами с аргументами b, 0, и b.length.
- Переопределяет:
-
writeв классеFilterOutputStream - Параметры:
-
b- данные. - Исключения:
-
NullPointerException- еслиbnull. -
IOException- если произошла ошибка ввода-вывода. - См. также:
write
public void write(byte[] b, int off, int len) throws IOException
- Переопределяет:
-
writeв классеFilterOutputStream - Параметры:
-
b- данные. -
off- начальное смещение в данных. -
len- количество байтов для записи. - Исключения:
-
IOException- если произошла ошибка ввода-вывода. - См. также:
flush
public void flush() throws IOException
Любые байты, буферизованные объектом и ожидающие обработки, не будут записаны. Например, если объект — это блочный шифр, и общее количество записанных байтов с использованием одного из методов меньше размера блока шифра, байты не будут записаны.
- Определено в:
-
flushв интерфейсеFlushable - Переопределяет:
-
flushв классеFilterOutputStream - Исключения:
-
IOException- если произошла ошибка ввода-вывода. - См. также:
close
public void close() throws IOException
Этот метод вызывает метод close объекта, что приводит к обработке всех буферизованных байтов. Результат записывается путём вызова метода write этого потока вывода.
Этот метод сбрасывает объект до исходного состояния и вызывает метод close базового потока вывода.
- Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеCloseable - Переопределяет:
-
closeв классеFilterOutputStream - Исключения:
-
IOException- если произошла ошибка ввода-вывода. - См. также:
© 1993, 2023, 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/21/docs/api/java.base/javax/crypto/CipherOutputStream.html