Spec-Zone.ru › OpenJDK 27

Класс MemoryCacheImageInputStream

java.lang.Object
javax.imageio.stream.ImageInputStreamImpl
javax.imageio.stream.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(InputStream stream)
Создает MemoryCacheImageInputStream для чтения из заданного InputStream.

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Закрывает этот MemoryCacheImageInputStream, освобождая кэш.
boolean isCached()
Возвращает true, поскольку этот ImageInputStream кэширует данные, чтобы обеспечить перемещение назад.
boolean isCachedFile()
Возвращает false, поскольку этот ImageInputStream не использует файловый кэш.
boolean isCachedMemory()
Возвращает true, поскольку этот ImageInputStream использует кэш в оперативной памяти.
int read()
Читает из потока один байт и возвращает его как int в диапазоне от 0 до 255.
int read(byte[] b, int off, int len)
Читает из потока до 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(long pos)
Отбрасывает начальную часть потока до указанной позиции.
int getBitOffset()
Возвращает текущее смещение бита в виде целого числа от 0 до 7 включительно.
ByteOrder getByteOrder()
Возвращает порядок байтов, используемый при чтении значений данных из этого потока, в виде экземпляра перечисления java.nio.ByteOrder.
long getFlushedPosition()
Возвращает самую раннюю позицию в потоке, к которой можно перейти.
long getStreamPosition()
Возвращает текущую позицию потока в байтах.
long length()
Возвращает -1L, указывая, что длина потока неизвестна.
void mark()
Помещает текущую позицию потока в стек отмеченных позиций.
int read(byte[] b)
Вспомогательный метод, вызывающий read(b, 0, b.length).
int readBit()
Читает из потока один бит и возвращает его как int со значением 0 или 1.
long readBits(int numBits)
Читает из потока битовую строку и возвращает ее как long; первый прочитанный бит становится старшим битом результата.
boolean readBoolean()
Читает байт из потока и возвращает значение типа boolean: true, если оно ненулевое, и false, если оно равно нулю.
byte readByte()
Читает байт из потока и возвращает его как значение типа byte.
void readBytes(IIOByteBuffer buf, int len)
Читает из потока до len байт и изменяет переданный IIOByteBuffer, указывая массив байтов, смещение и длину, по которым доступны данные.
char readChar()
Эквивалентен readUnsignedShort, но результат возвращается с использованием типа данных char.
double readDouble()
Читает из потока 8 байт, объединяет их (концептуально) в соответствии с текущим порядком байтов и возвращает результат как double.
float readFloat()
Читает из потока 4 байта, объединяет их (концептуально) в соответствии с текущим порядком байтов и возвращает результат как float.
void readFully(byte[] b)
Читает из потока b.length байт и записывает их в b, начиная с индекса 0.
void readFully(byte[] b, int off, int len)
Читает из потока len байт и записывает их в b, начиная с индекса off.
void readFully(char[] c, int off, int len)
Читает из потока len символов (беззнаковых 16-разрядных целых чисел) в соответствии с текущим порядком байтов и записывает их в c, начиная с индекса off.
void readFully(double[] d, int off, int len)
Читает из потока len чисел типа double (64-разрядных чисел с плавающей запятой двойной точности IEEE) в соответствии с текущим порядком байтов и записывает их в d, начиная с индекса off.
void readFully(float[] f, int off, int len)
Читает из потока len чисел типа float (32-разрядных чисел с плавающей запятой одинарной точности IEEE) в соответствии с текущим порядком байтов и записывает их в f, начиная с индекса off.
void readFully(int[] i, int off, int len)
Читает из потока len чисел типа int (знаковых 32-разрядных целых чисел) в соответствии с текущим порядком байтов и записывает их в i, начиная с индекса off.
void readFully(long[] l, int off, int len)
Читает из потока len чисел типа long (знаковых 64-разрядных целых чисел) в соответствии с текущим порядком байтов и записывает их в l, начиная с индекса off.
void readFully(short[] s, int off, int len)
Читает из потока 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(long pos)
Устанавливает текущую позицию потока в заданное место.
void setBitOffset(int bitOffset)
Устанавливает смещение бита в целое число от 0 до 7 включительно.
void setByteOrder(ByteOrder byteOrder)
Задает порядок байтов, который будет использоваться при дальнейшем чтении значений данных из этого потока.
int skipBytes(int n)
Перемещает текущую позицию потока вперед, вызывая seek(getStreamPosition() + n).
long skipBytes(long n)
Перемещает текущую позицию потока вперед, вызывая seek(getStreamPosition() + n).

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, 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()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

MemoryCacheImageInputStream

public MemoryCacheImageInputStream(InputStream stream)
Создает MemoryCacheImageInputStream для чтения из заданного InputStream.
Параметры:
stream — InputStream для чтения.
Исключения:
IllegalArgumentException — если stream имеет значение null.

Подробное описание методов

read

public int read() throws IOException
Описание скопировано из класса: ImageInputStreamImpl
Читает из потока один байт и возвращает его как int в диапазоне от 0 до 255. При достижении конца потока возвращается -1.

Подклассы должны предоставить реализацию этого метода. Реализация в подклассе должна обновить позицию потока перед завершением работы.

Перед чтением смещение бита в потоке должно быть сброшено в ноль.

Определено в:
read в интерфейсе ImageInputStream
Определено в:
read в классе ImageInputStreamImpl
Возвращает:
значение следующего байта в потоке или -1, если достигнут конец потока.
Исключения:
IOException — если поток закрыт.

read

public int read(byte[] b, int off, int len) throws IOException
Описание скопировано из класса: ImageInputStreamImpl
Читает из потока до len байт и записывает их в b, начиная с индекса off. Если прочитать байты невозможно, поскольку достигнут конец потока, возвращается -1.

Перед чтением смещение бита в потоке должно быть сброшено в ноль.

Подклассы должны предоставить реализацию этого метода. Реализация в подклассе должна обновить позицию потока перед завершением работы.

Определено в:
read в интерфейсе ImageInputStream
Определено в:
read в классе ImageInputStreamImpl
Параметры:
b — массив байтов для записи.
off — начальная позиция в b, начиная с которой выполняется запись.
len — максимальное количество байтов для чтения.
Возвращает:
фактическое количество прочитанных байтов или -1, указывающее на конец потока.
Исключения:
IOException — если произошла ошибка ввода-вывода.

isCached

public boolean isCached()
Возвращает true, поскольку этот ImageInputStream кэширует данные, чтобы обеспечить перемещение назад.
Определено в:
isCached в интерфейсе ImageInputStream
Переопределяет:
isCached в классе ImageInputStreamImpl
Возвращает:
true.
См. также:
  • isCachedMemory()
  • isCachedFile()

isCachedFile

public boolean isCachedFile()
Возвращает false, поскольку этот ImageInputStream не использует файловый кэш.
Определено в:
isCachedFile в интерфейсе ImageInputStream
Переопределяет:
isCachedFile в классе ImageInputStreamImpl
Возвращает:
false.
См. также:
  • isCached()
  • isCachedMemory()

isCachedMemory

public boolean isCachedMemory()
Возвращает true, поскольку этот ImageInputStream использует кэш в оперативной памяти.
Определено в:
isCachedMemory в интерфейсе ImageInputStream
Переопределяет:
isCachedMemory в классе ImageInputStreamImpl
Возвращает:
true.
См. также:
  • isCached()
  • isCachedFile()

close

public void close() throws IOException
Закрывает этот MemoryCacheImageInputStream, освобождая кэш. Исходный InputStream не закрывается.
Исключения:
IOException — если произошла ошибка ввода-вывода.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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