Spec-Zone.ru › OpenJDK 24

Класс 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, 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/java/security/DigestInputStream.html

Spec-Zone.ru

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