Spec-Zone.ru › OpenJDK 21

Класс DigestInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.security.DigestInputStream
Все реализуемые интерфейсы:
Closeable, AutoCloseable
public class DigestInputStream extends FilterInputStream
Прозрачный поток, который обновляет связанный дайджест сообщения, используя биты, проходящие через поток.

Чтобы завершить вычисление дайджеста сообщения, вызовите один из digest методов связанного дайджеста сообщения после ваших вызовов одному из методов потока дайджеста ввода read.

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

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

Примечание реализации:
Эта реализация обновляет дайджест сообщения только с данными, фактически считанными из потока ввода, когда он включен. Это включает в себя различные read методы, transferTo, readAllBytes, и readNBytes. Обратите внимание, что данные, пропущенные методом skip, игнорируются. С другой стороны, если базовый поток поддерживает методы mark и reset, и те же данные считываются снова после reset, то дайджест сообщения обновляется снова.
С:
1.2
См. также:
  • MessageDigest
  • DigestOutputStream

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

Модификатор и тип Поле Описание
protected MessageDigest digest
Связанный с этим потоком дайджест сообщения.

Поля, объявленные в классе java.io.FilterInputStream

in

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

Конструктор Описание
DigestInputStream(InputStream stream, MessageDigest digest)
Создает поток дайджеста ввода, используя указанный поток ввода и дайджест сообщения.

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

Модификатор и тип Метод Описание
MessageDigest getMessageDigest()
Возвращает дайджест сообщения, связанный с этим потоком.
void on(boolean on)
Включает или выключает функцию дайджеста.
int read()
Считывает байт и обновляет дайджест сообщения (если функция дайджеста включена).
int read(byte[] b, int off, int len)
Считывает в массив байтов и обновляет дайджест сообщения (если функция дайджеста включена).
void setMessageDigest(MessageDigest digest)
Связывает указанный дайджест сообщения с этим потоком.
String toString()
Выводит строковое представление этого потока дайджеста ввода и связанного с ним объекта дайджеста сообщения.

Методы, объявленные в классе java.io.FilterInputStream

available, close, mark, markSupported, read, reset, skip

Методы, объявленные в классе java.io.InputStream

nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo

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

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

Подробное описание полей

digest

protected MessageDigest digest
Связанный с этим потоком дайджест сообщения.

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

DigestInputStream

public DigestInputStream(InputStream stream, MessageDigest digest)
Создает поток дайджеста ввода, используя указанный поток ввода и дайджест сообщения.
Параметры:
stream - поток ввода.
digest - дайджест сообщения, который нужно связать с этим потоком.

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

getMessageDigest

public MessageDigest getMessageDigest()
Возвращает дайджест сообщения, связанный с этим потоком.
Возвращает:
дайджест сообщения, связанный с этим потоком.
См. также:
  • setMessageDigest(java.security.MessageDigest)

setMessageDigest

public void setMessageDigest(MessageDigest digest)
Связывает указанный дайджест сообщения с этим потоком.
Параметры:
digest - дайджест сообщения, который нужно связать с этим потоком.
См. также:
  • getMessageDigest()

read

public int read() throws IOException
Считывает байт и обновляет дайджест сообщения (если функция дайджеста включена). То есть этот метод считывает байт из потока ввода, блокируя до фактического считывания байта. Если функция дайджеста включена (см. on), этот метод затем вызовет update на связанном с этим потоком дайджесте сообщения, передав ему прочитанный байт.
Переопределяет:
read в классе FilterInputStream
Возвращает:
прочитанный байт.
Исключения:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • MessageDigest.update(byte)

read

public int read(byte[] b, int off, int len) throws IOException
Считывает в массив байтов и обновляет дайджест сообщения (если функция дайджеста включена). То есть этот метод считывает до len байтов из потока ввода в массив b, начиная со смещения off. Этот метод блокируется до фактического считывания данных. Если функция дайджеста включена (см. on), этот метод затем вызовет update на связанном с этим потоком дайджесте сообщения, передав ему данные.
Переопределяет:
read в классе FilterInputStream
Параметры:
b - массив, в который считываются данные.
off - начальное смещение в b, где должны быть размещены данные.
len - максимальное количество байтов, которые должны быть считываются из потока ввода в b, начиная со смещения off.
Возвращает:
фактическое количество считанных байтов. Это меньше len, если конец потока достигнут до считывания len байтов. -1 возвращается, если байты не были считанны, потому что конец потока уже был достигнут в момент вызова.
Исключения:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • MessageDigest.update(byte[], int, int)

on

public void on(boolean on)
Включает или выключает функцию дайджеста. По умолчанию включена. Когда она включена, вызов одного из read методов приводит к обновлению дайджеста сообщения. Но когда она выключена, дайджест сообщения не обновляется.
Параметры:
on - true для включения функции дайджеста, false для ее выключения.

toString

public String toString()
Выводит строковое представление этого потока дайджеста ввода и связанного с ним объекта дайджеста сообщения.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта.

© 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/java/security/DigestInputStream.html

Spec-Zone.ru

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