Spec-Zone.ru › OpenJDK 27

Класс MemoryCacheImageOutputStream

java.lang.Object
javax.imageio.stream.ImageInputStreamImpl
javax.imageio.stream.ImageOutputStreamImpl
javax.imageio.stream.MemoryCacheImageOutputStream
Все реализуемые интерфейсы:
Closeable, DataInput, DataOutput, AutoCloseable, ImageInputStream, ImageOutputStream
public class MemoryCacheImageOutputStream extends ImageOutputStreamImpl
Реализация ImageOutputStream, записывающая выходные данные в обычный OutputStream. Для кэширования как минимум данных между позицией сброса и текущей позицией записи используется буфер в памяти. Единственный конструктор принимает OutputStream, поэтому этот класс нельзя использовать для операций чтения/изменения/записи. Чтение возможно только из частей потока, которые уже записаны в кэш, но ещё не сброшены.

Краткое описание полей

Поля, объявленные в классе 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
Текущая позиция чтения в потоке.

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

Конструктор Описание
MemoryCacheImageOutputStream(OutputStream stream)
Создаёт MemoryCacheImageOutputStream, который будет записывать данные в указанный OutputStream.

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

Модификатор и тип Метод Описание
void close()
Закрывает этот MemoryCacheImageOutputStream.
void flushBefore(long pos)
Сбрасывает все данные до указанной позиции в базовое место назначения, например в OutputStream или File.
boolean isCached()
Возвращает true, поскольку этот ImageOutputStream кэширует данные, чтобы разрешить перемещение назад по потоку.
boolean isCachedFile()
Возвращает false, поскольку этот ImageOutputStream не поддерживает файловый кэш.
boolean isCachedMemory()
Возвращает true, поскольку этот ImageOutputStream поддерживает кэш в оперативной памяти.
int read()
Считывает из потока один байт и возвращает его как int в диапазоне от 0 до 255.
int read(byte[] b, int off, int len)
Считывает из потока не более len байтов и сохраняет их в b, начиная с индекса off.
void write(byte[] b, int off, int len)
Записывает последовательность байтов в поток в текущей позиции.
void write(int b)
Записывает один байт в поток в текущей позиции.

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

flushBits, write, writeBit, writeBits, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeChars, writeDouble, writeDoubles, writeFloat, writeFloats, writeInt, writeInts, writeLong, writeLongs, writeShort, writeShorts, writeUTF
Модификатор и тип Метод Описание
protected final void flushBits()
Если смещение в битах не равно нулю, устанавливает оставшиеся биты текущего байта в 0 и перемещает позицию потока на один байт вперёд.
void write(byte[] b)
Записывает последовательность байтов в поток в текущей позиции.
void writeBit(int bit)
Записывает в поток один бит, заданный младшим значащим битом аргумента, в текущем смещении в битах внутри текущей позиции байта.
void writeBits(long bits, int numBits)
Записывает в поток последовательность битов, заданную numBits младшими значащими битами аргумента bits в порядке слева направо, в текущем смещении в битах внутри текущей позиции байта.
void writeBoolean(boolean v)
Записывает в поток значение boolean.
void writeByte(int v)
Записывает в поток 8 младших битов v.
void writeBytes(String s)
Записывает строку в выходной поток.
void writeChar(int v)
Этот метод является синонимом writeShort.
void writeChars(char[] c, int off, int len)
Записывает последовательность символов в поток в текущей позиции.
void writeChars(String s)
Записывает строку в выходной поток.
void writeDouble(double v)
Записывает в выходной поток значение double, состоящее из четырёх байтов.
void writeDoubles(double[] d, int off, int len)
Записывает последовательность значений типа double в поток в текущей позиции.
void writeFloat(float v)
Записывает в выходной поток значение float, состоящее из четырёх байтов.
void writeFloats(float[] f, int off, int len)
Записывает последовательность значений типа float в поток в текущей позиции.
void writeInt(int v)
Записывает в поток 32 бита значения v.
void writeInts(int[] i, int off, int len)
Записывает последовательность значений типа int в поток в текущей позиции.
void writeLong(long v)
Записывает в поток 64 бита значения v.
void writeLongs(long[] l, int off, int len)
Записывает последовательность значений типа long в поток в текущей позиции.
void writeShort(int v)
Записывает в поток 16 младших битов v.
void writeShorts(short[] s, int off, int len)
Записывает последовательность значений типа short в поток в текущей позиции.
void writeUTF(String s)
Записывает в выходной поток два байта с информацией о длине в сетевом порядке байтов, а затем представление модифицированного UTF-8 для каждого символа строки s.

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

checkClosed, flush, 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()
Отбрасывает начальную позицию потока, предшествующую текущей позиции.
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)
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

MemoryCacheImageOutputStream

public MemoryCacheImageOutputStream(OutputStream stream)
Создает MemoryCacheImageOutputStream, который будет записывать данные в указанный OutputStream.
Параметры:
stream — OutputStream, в который выполняется запись.
Исключения:
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 — если произошла ошибка ввода-вывода.

write

public void write(int b) throws IOException
Описание скопировано из интерфейса: ImageOutputStream
Записывает один байт в поток в текущей позиции. 24 старших бита b игнорируются.

Если смещение бита в потоке не равно нулю, оставшаяся часть текущего байта дополняется нулями и сначала записывается в поток. После записи смещение бита будет равно 0. Для обеспечения этого реализующие классы могут использовать метод flushBits класса ImageOutputStreamImpl.

Параметры:
b — int, младшие 8 бит которого должны быть записаны.
Исключения:
IOException — если произошла ошибка ввода-вывода.

write

public void write(byte[] b, int off, int len) throws IOException
Описание скопировано из интерфейса: ImageOutputStream
Записывает последовательность байтов в поток в текущей позиции. Если len равно 0, ничего не записывается. Сначала записывается байт b[off], затем байт b[off + 1] и так далее.

Если смещение бита в потоке не равно нулю, оставшаяся часть текущего байта дополняется нулями и сначала записывается в поток. После записи смещение бита будет равно 0. Для обеспечения этого реализующие классы могут использовать метод flushBits класса ImageOutputStreamImpl.

Параметры:
b — массив byte для записи.
off — начальное смещение в данных.
len — количество byte для записи.
Исключения:
IOException — если произошла ошибка ввода-вывода.

isCached

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

isCachedFile

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

isCachedMemory

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

close

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

flushBefore

public void flushBefore(long pos) throws IOException
Сбрасывает все данные, расположенные до заданной позиции, в нижележащий целевой объект, например OutputStream или File. Попытка переместиться в сброшенную часть потока приведет к IndexOutOfBoundsException.
Параметры:
pos — long, содержащий длину префикса потока, который можно сбросить в целевой объект.
Исключения:
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