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