Класс 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), поэтому для вычисления промежуточных дайджестов вызывающая сторона должна сохранить ссылку на объект дайджеста и клонировать его для каждого вычисляемого дайджеста, оставив исходный дайджест нетронутым.
- С тех пор:
- 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, 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()
Выводит строковое представление этого потока входного дайджеста и связанного с ним объекта дайджеста сообщения.
© 1993, 2020, 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/11/docs/api/java.base/java/security/DigestInputStream.html