Spec-Zone.ru › OpenJDK 27

Класс 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
Дайджест сообщения, связанный с этим потоком.

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

in
Модификатор и тип Поле Описание
protected InputStream 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()
Возвращает строковое представление этого потока ввода дайджеста и связанного с ним объекта дайджеста сообщения.

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

available, close, mark, markSupported, read, reset, skip
Модификатор и тип Метод Описание
int available()
Возвращает оценку количества байтов, которые могут быть считаны из этого входного потока (или пропущены) без блокировки следующим вызовом метода для этого входного потока.
void close()
Закрывает этот входной поток и освобождает все системные ресурсы, связанные с ним.
void mark(int readlimit)
Помечает текущую позицию в этом входном потоке.
boolean markSupported()
Проверяет, поддерживает ли этот входной поток методы mark и reset.
int read(byte[] b)
Считывает из этого входного потока в массив байтов не более b.length байтов данных.
void reset()
Перемещает этот поток в позицию, соответствующую моменту последнего вызова метода mark для этого входного потока.
long skip(long n)
Пропускает и отбрасывает n байтов данных из входного потока.

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

nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
Модификатор и тип Метод Описание
static InputStream nullInputStream()
Возвращает новый InputStream, который не считывает байтов.
byte[] readAllBytes()
Считывает все оставшиеся байты из входного потока.
int readNBytes(byte[] b, int off, int len)
Считывает из входного потока запрошенное количество байтов в указанный массив байтов.
byte[] readNBytes(int len)
Считывает из входного потока не более указанного количества байтов.
void skipNBytes(long n)
Пропускает и отбрасывает ровно n байтов данных из этого входного потока.
long transferTo(OutputStream out)
Считывает все байты из этого входного потока и записывает их в указанный выходной поток в порядке считывания.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает значение хеш-кода этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения определенного времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения определенного времени.

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

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
Считывает данные в массив байтов и обновляет дайджест сообщения (если функция дайджеста включена). Иными словами, этот метод считывает из входного потока в массив b не более len байтов, начиная со смещения 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
Возвращает:
строковое представление объекта

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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