Класс DigestInputStream
- Все реализуемые интерфейсы:
Closeable, AutoCloseable
public class DigestInputStream extends FilterInputStream
Чтобы завершить вычисление дайджеста сообщения, вызовите один из методов digest для связанного дайджеста сообщения после вызовов одного из методов read этого потока ввода дайджеста.
Этот поток можно включать и выключать (см. on). Когда поток включен, вызов одного из методов read приводит к обновлению дайджеста сообщения. Когда поток выключен, дайджест сообщения не обновляется. По умолчанию поток включен.
Обратите внимание, что объекты дайджеста могут вычислить только один дайджест (см. MessageDigest), поэтому для вычисления промежуточных дайджестов вызывающий код должен сохранить ссылку на объект дайджеста и клонировать его для каждого вычисляемого дайджеста, не изменяя исходный дайджест.
- Примечание по реализации:
- Эта реализация обновляет дайджест сообщения только данными, фактически считанными из входного потока, когда он включен. Сюда входят различные методы
read,transferTo,readAllBytesиreadNBytes. Обратите внимание, что данные, пропущенные методомskip, игнорируются. С другой стороны, если базовый поток поддерживает методыmarkиresetи те же данные считываются повторно послеreset, дайджест сообщения обновляется снова. - Начиная с:
- 1.2
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected MessageDigest |
digest |
Дайджест сообщения, связанный с этим потоком. |
Поля, объявленные в классе FilterInputStream
in | Модификатор и тип | Поле | Описание |
|---|---|---|
protected InputStream |
in |
Входной поток, для которого применяется фильтрация. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
DigestInputStream |
Создает поток ввода дайджеста, используя указанный входной поток и дайджест сообщения. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
MessageDigest |
getMessageDigest() |
Возвращает дайджест сообщения, связанный с этим потоком. |
void |
on |
Включает или выключает функцию дайджеста. |
int |
read() |
Считывает байт и обновляет дайджест сообщения (если функция дайджеста включена). |
int |
read |
Считывает данные в массив байтов и обновляет дайджест сообщения (если функция дайджеста включена). |
void |
setMessageDigest |
Связывает указанный дайджест сообщения с этим потоком. |
String |
toString() |
Возвращает строковое представление этого потока ввода дайджеста и связанного с ним объекта дайджеста сообщения. |
Методы, объявленные в классе FilterInputStream
available, close, mark, markSupported, read, reset, skip | Модификатор и тип | Метод | Описание |
|---|---|---|
int |
available() |
Возвращает оценку количества байтов, которые могут быть считаны из этого входного потока (или пропущены) без блокировки следующим вызовом метода для этого входного потока. |
void |
close() |
Закрывает этот входной поток и освобождает все системные ресурсы, связанные с ним. |
void |
mark |
Помечает текущую позицию в этом входном потоке. |
boolean |
markSupported() |
Проверяет, поддерживает ли этот входной поток методы mark и reset. |
int |
read |
Считывает из этого входного потока в массив байтов не более b.length байтов данных. |
void |
reset() |
Перемещает этот поток в позицию, соответствующую моменту последнего вызова метода mark для этого входного потока. |
long |
skip |
Пропускает и отбрасывает n байтов данных из входного потока. |
Методы, объявленные в классе InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo | Модификатор и тип | Метод | Описание |
|---|---|---|
static InputStream |
nullInputStream() |
Возвращает новый InputStream, который не считывает байтов. |
byte[] |
readAllBytes() |
Считывает все оставшиеся байты из входного потока. |
int |
readNBytes |
Считывает из входного потока запрошенное количество байтов в указанный массив байтов. |
byte[] |
readNBytes |
Считывает из входного потока не более указанного количества байтов. |
void |
skipNBytes |
Пропускает и отбрасывает ровно n байтов данных из этого входного потока. |
long |
transferTo |
Считывает все байты из этого входного потока и записывает их в указанный выходной поток в порядке считывания. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает значение хеш-кода этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения определенного времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения определенного времени. |
Подробное описание полей
digest
protected MessageDigest digest
Подробное описание конструкторов
DigestInputStream
public DigestInputStream(InputStream stream, MessageDigest digest)
- Параметры:
-
stream— входной поток. -
digest— дайджест сообщения, который будет связан с этим потоком.
Подробное описание методов
getMessageDigest
public MessageDigest getMessageDigest()
- Возвращает:
- дайджест сообщения, связанный с этим потоком.
- См. также:
setMessageDigest
public void setMessageDigest(MessageDigest digest)
- Параметры:
-
digest— дайджест сообщения, который будет связан с этим потоком. - См. также:
read
public int read() throws IOException
on), метод вызывает update для дайджеста сообщения, связанного с этим потоком, передавая ему считанный байт.- Переопределяет:
-
readв классеFilterInputStream - Возвращает:
- считанный байт.
- Выбрасывает:
-
IOException— если произошла ошибка ввода-вывода. - См. также:
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— если произошла ошибка ввода-вывода. - См. также:
on
public void on(boolean on)
read приводит к обновлению дайджеста сообщения. Когда функция выключена, дайджест сообщения не обновляется.- Параметры:
-
on—true, чтобы включить функцию дайджеста,false, чтобы выключить ее.
toString
© 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.