Класс MemoryCacheImageInputStream
- Все реализуемые интерфейсы:
Closeable, DataInput, AutoCloseable, ImageInputStream
public class MemoryCacheImageInputStream extends ImageInputStreamImpl
ImageInputStream, получающая данные из обычного InputStream. Для кэширования используется буфер памяти, в котором хранятся как минимум данные между позицией отбрасывания и текущей позицией чтения. В общем случае при чтении из обычного InputStream предпочтительно использовать FileCacheImageInputStream. Этот класс предназначен для случаев, когда невозможно создать временный файл для записи.
Краткое описание полей
Поля, объявленные в классе ImageInputStreamImpl
bitOffset, byteOrder, flushedPos, streamPos | Модификатор и тип | Поле | Описание |
|---|---|---|
protected int |
bitOffset |
Текущее смещение бита в потоке. |
protected ByteOrder |
byteOrder |
Порядок байтов потока в виде экземпляра перечисления java.nio.ByteOrder, где ByteOrder.BIG_ENDIAN обозначает сетевой порядок байтов, а ByteOrder.LITTLE_ENDIAN — обратный порядок. |
protected long |
flushedPos |
Позиция, до которой данные могут быть отброшены. |
protected long |
streamPos |
Текущая позиция чтения в потоке. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
MemoryCacheImageInputStream |
Создает MemoryCacheImageInputStream для чтения из заданного InputStream. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает этот MemoryCacheImageInputStream, освобождая кэш. |
boolean |
isCached() |
Возвращает true, поскольку этот ImageInputStream кэширует данные, чтобы обеспечить перемещение назад. |
boolean |
isCachedFile() |
Возвращает false, поскольку этот ImageInputStream не использует файловый кэш. |
boolean |
isCachedMemory() |
Возвращает true, поскольку этот ImageInputStream использует кэш в оперативной памяти. |
int |
read() |
Читает из потока один байт и возвращает его как int в диапазоне от 0 до 255. |
int |
read |
Читает из потока до len байт и записывает их в b, начиная с индекса off. |
Методы, объявленные в классе ImageInputStreamImpl
checkClosed, flush, flushBefore, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, length, mark, read, readBit, readBits, readBoolean, readByte, readBytes, readChar, readDouble, readFloat, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedInt, readUnsignedShort, readUTF, reset, seek, setBitOffset, setByteOrder, skipBytes, skipBytes | Модификатор и тип | Метод | Описание |
|---|---|---|
protected final void |
checkClosed() |
Вызывает IOException, если поток закрыт. |
void |
flush() |
Отбрасывает начальную часть потока до текущей позиции. |
void |
flushBefore |
Отбрасывает начальную часть потока до указанной позиции. |
int |
getBitOffset() |
Возвращает текущее смещение бита в виде целого числа от 0 до 7 включительно. |
ByteOrder |
getByteOrder() |
Возвращает порядок байтов, используемый при чтении значений данных из этого потока, в виде экземпляра перечисления java.nio.ByteOrder. |
long |
getFlushedPosition() |
Возвращает самую раннюю позицию в потоке, к которой можно перейти. |
long |
getStreamPosition() |
Возвращает текущую позицию потока в байтах. |
long |
length() |
Возвращает -1L, указывая, что длина потока неизвестна. |
void |
mark() |
Помещает текущую позицию потока в стек отмеченных позиций. |
int |
read |
Вспомогательный метод, вызывающий read(b, 0, b.length). |
int |
readBit() |
Читает из потока один бит и возвращает его как int со значением 0 или 1. |
long |
readBits |
Читает из потока битовую строку и возвращает ее как long; первый прочитанный бит становится старшим битом результата. |
boolean |
readBoolean() |
Читает байт из потока и возвращает значение типа boolean: true, если оно ненулевое, и false, если оно равно нулю. |
byte |
readByte() |
Читает байт из потока и возвращает его как значение типа byte. |
void |
readBytes |
Читает из потока до len байт и изменяет переданный IIOByteBuffer, указывая массив байтов, смещение и длину, по которым доступны данные. |
char |
readChar() |
Эквивалентен readUnsignedShort, но результат возвращается с использованием типа данных char. |
double |
readDouble() |
Читает из потока 8 байт, объединяет их (концептуально) в соответствии с текущим порядком байтов и возвращает результат как double. |
float |
readFloat() |
Читает из потока 4 байта, объединяет их (концептуально) в соответствии с текущим порядком байтов и возвращает результат как float. |
void |
readFully |
Читает из потока b.length байт и записывает их в b, начиная с индекса 0. |
void |
readFully |
Читает из потока len байт и записывает их в b, начиная с индекса off. |
void |
readFully |
Читает из потока len символов (беззнаковых 16-разрядных целых чисел) в соответствии с текущим порядком байтов и записывает их в c, начиная с индекса off. |
void |
readFully |
Читает из потока len чисел типа double (64-разрядных чисел с плавающей запятой двойной точности IEEE) в соответствии с текущим порядком байтов и записывает их в d, начиная с индекса off. |
void |
readFully |
Читает из потока len чисел типа float (32-разрядных чисел с плавающей запятой одинарной точности IEEE) в соответствии с текущим порядком байтов и записывает их в f, начиная с индекса off. |
void |
readFully |
Читает из потока len чисел типа int (знаковых 32-разрядных целых чисел) в соответствии с текущим порядком байтов и записывает их в i, начиная с индекса off. |
void |
readFully |
Читает из потока len чисел типа long (знаковых 64-разрядных целых чисел) в соответствии с текущим порядком байтов и записывает их в l, начиная с индекса off. |
void |
readFully |
Читает из потока len чисел типа short (знаковых 16-разрядных целых чисел) в соответствии с текущим порядком байтов и записывает их в s, начиная с индекса off. |
int |
readInt() |
Читает из потока 4 байта, объединяет их (концептуально) в соответствии с текущим порядком байтов и возвращает результат как int. |
String |
readLine() |
Читает следующую строку текста из входного потока. |
long |
readLong() |
Читает из потока 8 байт, объединяет их (концептуально) в соответствии с текущим порядком байтов и возвращает результат как long. |
short |
readShort() |
Читает из потока два байта, объединяет их (концептуально) в соответствии с текущим порядком байтов и возвращает результат как значение типа short. |
int |
readUnsignedByte() |
Читает байт из потока, концептуально преобразует его в int, выполняет побитовое И с 0xff, чтобы удалить биты знакового расширения, и возвращает результат как значение типа byte. |
long |
readUnsignedInt() |
Читает из потока 4 байта, концептуально объединяет их в соответствии с текущим порядком байтов, преобразует результат в long, выполняет побитовое И с 0xffffffffL, чтобы удалить биты знакового расширения, и возвращает результат как беззнаковое значение типа long. |
int |
readUnsignedShort() |
Читает из потока два байта, концептуально объединяет их в соответствии с текущим порядком байтов, преобразует полученное значение в int, выполняет побитовое И с 0xffff, чтобы удалить биты знакового расширения, и возвращает результат как беззнаковое значение типа int. |
String |
readUTF() |
Читает строку, закодированную в формате модифицированного UTF-8. |
void |
reset() |
Восстанавливает текущие позиции байта и бита потока из стека отмеченных позиций. |
void |
seek |
Устанавливает текущую позицию потока в заданное место. |
void |
setBitOffset |
Устанавливает смещение бита в целое число от 0 до 7 включительно. |
void |
setByteOrder |
Задает порядок байтов, который будет использоваться при дальнейшем чтении значений данных из этого потока. |
int |
skipBytes |
Перемещает текущую позицию потока вперед, вызывая seek(getStreamPosition() + n). |
long |
skipBytes |
Перемещает текущую позицию потока вперед, вызывая seek(getStreamPosition() + n). |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удален в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
MemoryCacheImageInputStream
public MemoryCacheImageInputStream(InputStream stream)
MemoryCacheImageInputStream для чтения из заданного InputStream.- Параметры:
-
stream—InputStreamдля чтения. - Исключения:
-
IllegalArgumentException— еслиstreamимеет значениеnull.
Подробное описание методов
read
public int read() throws IOException
ImageInputStreamImplint в диапазоне от 0 до 255. При достижении конца потока возвращается -1. Подклассы должны предоставить реализацию этого метода. Реализация в подклассе должна обновить позицию потока перед завершением работы.
Перед чтением смещение бита в потоке должно быть сброшено в ноль.
- Определено в:
-
readв интерфейсеImageInputStream - Определено в:
-
readв классеImageInputStreamImpl - Возвращает:
- значение следующего байта в потоке или
-1, если достигнут конец потока. - Исключения:
-
IOException— если поток закрыт.
read
public int read(byte[] b, int off, int len) throws IOException
ImageInputStreamImpllen байт и записывает их в b, начиная с индекса off. Если прочитать байты невозможно, поскольку достигнут конец потока, возвращается -1. Перед чтением смещение бита в потоке должно быть сброшено в ноль.
Подклассы должны предоставить реализацию этого метода. Реализация в подклассе должна обновить позицию потока перед завершением работы.
- Определено в:
-
readв интерфейсеImageInputStream - Определено в:
-
readв классеImageInputStreamImpl - Параметры:
-
b— массив байтов для записи. -
off— начальная позиция вb, начиная с которой выполняется запись. -
len— максимальное количество байтов для чтения. - Возвращает:
- фактическое количество прочитанных байтов или
-1, указывающее на конец потока. - Исключения:
-
IOException— если произошла ошибка ввода-вывода.
isCached
public boolean isCached()
true, поскольку этот ImageInputStream кэширует данные, чтобы обеспечить перемещение назад.- Определено в:
-
isCachedв интерфейсеImageInputStream - Переопределяет:
-
isCachedв классеImageInputStreamImpl - Возвращает:
-
true. - См. также:
isCachedFile
public boolean isCachedFile()
false, поскольку этот ImageInputStream не использует файловый кэш.- Определено в:
-
isCachedFileв интерфейсеImageInputStream - Переопределяет:
-
isCachedFileв классеImageInputStreamImpl - Возвращает:
-
false. - См. также:
isCachedMemory
public boolean isCachedMemory()
true, поскольку этот ImageInputStream использует кэш в оперативной памяти.- Определено в:
-
isCachedMemoryв интерфейсеImageInputStream - Переопределяет:
-
isCachedMemoryв классеImageInputStreamImpl - Возвращает:
-
true. - См. также:
close
public void close() throws IOException
MemoryCacheImageInputStream, освобождая кэш. Исходный InputStream не закрывается.- Исключения:
-
IOException— если произошла ошибка ввода-вывода.
© 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.