Класс MemoryCacheImageOutputStream
- Все реализованные интерфейсы:
Closeable, DataInput, DataOutput, AutoCloseable, ImageInputStream, ImageOutputStream
public class MemoryCacheImageOutputStream extends ImageOutputStreamImpl
ImageOutputStream, которая записывает вывод в обычный OutputStream. Для кэширования как минимум данных между позицией сброса и текущей позицией записи используется буфер памяти. Единственный конструктор принимает OutputStream, поэтому этот класс нельзя использовать для операций чтения/изменения/записи. Чтение возможно только в тех частях потока, которые уже записаны в кэш и ещё не сброшены.Краткое описание полей
Поля, объявленные в классе ImageInputStreamImpl
bitOffset, byteOrder, flushedPos, streamPos
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
MemoryCacheImageOutputStream |
Создаёт MemoryCacheImageOutputStream, который будет записывать данные в указанный OutputStream. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает этот MemoryCacheImageOutputStream. |
void |
flushBefore |
Сбрасывает все данные до указанной позиции в базовое место назначения, например в OutputStream или File. |
boolean |
isCached() |
Возвращает true, поскольку этот ImageOutputStream кэширует данные, чтобы разрешить перемещение назад. |
boolean |
isCachedFile() |
Возвращает false, поскольку этот ImageOutputStream не использует файловый кэш. |
boolean |
isCachedMemory() |
Возвращает true, поскольку этот ImageOutputStream использует кэш в оперативной памяти. |
long |
length() |
Возвращает -1L, указывая, что длина потока неизвестна. |
int |
read() |
Считывает из потока один байт и возвращает его как int в диапазоне от 0 до 255. |
int |
read |
Считывает из потока не более len байтов и сохраняет их в b начиная с индекса off. |
void |
write |
Записывает последовательность байтов в поток в текущей позиции. |
void |
write |
Записывает один байт в поток в текущей позиции. |
Методы, объявленные в классе ImageOutputStreamImpl
flushBits, write, writeBit, writeBits, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeChars, writeDouble, writeDoubles, writeFloat, writeFloats, writeInt, writeInts, writeLong, writeLongs, writeShort, writeShorts, writeUTF
Методы, объявленные в классе ImageInputStreamImpl
checkClosed, finalize, 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
Методы, объявленные в классе Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе ImageInputStream
flush, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, 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
Подробное описание конструкторов
MemoryCacheImageOutputStream
public MemoryCacheImageOutputStream(OutputStream stream)
MemoryCacheImageOutputStream, который будет записывать данные в указанный OutputStream.- Параметры:
-
stream—OutputStream, в который следует записывать данные. - Исключения:
-
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— если произошла ошибка ввода-вывода.
write
public void write(int b) throws IOException
ImageOutputStreamb игнорируются. Если смещение бита в потоке не равно нулю, оставшаяся часть текущего байта дополняется нулями и сначала записывается в поток. После записи смещение бита будет равно 0. Чтобы гарантировать это, реализующие классы могут использовать метод flushBits класса ImageOutputStreamImpl.
- Параметры:
-
b—int, младшие 8 бит которого требуется записать. - Исключения:
-
IOException— если произошла ошибка ввода-вывода.
write
public void write(byte[] b, int off, int len) throws IOException
ImageOutputStreamlen равно 0, ничего не записывается. Сначала записывается байт b[off], затем байт b[off + 1] и так далее. Если смещение бита в потоке не равно нулю, оставшаяся часть текущего байта дополняется нулями и сначала записывается в поток. После записи смещение бита будет равно 0. Чтобы гарантировать это, реализующие классы могут использовать метод flushBits класса ImageOutputStreamImpl.
- Параметры:
-
b— массивbyteдля записи. -
off— начальное смещение в данных. -
len— числоbyteдля записи. - Исключения:
-
IOException— если произошла ошибка ввода-вывода.
length
public long length()
ImageInputStreamImpl-1L, указывая, что длина потока неизвестна. Подклассы должны переопределить этот метод, чтобы предоставить сведения о фактической длине.- Указан в:
-
lengthв интерфейсеImageInputStream - Переопределяет:
-
lengthв классеImageInputStreamImpl - Возвращает:
- -1L для указания неизвестной длины.
isCached
public boolean isCached()
true, поскольку этот ImageOutputStream кэширует данные, чтобы разрешить перемещение назад.- Указан в:
-
isCachedв интерфейсеImageInputStream - Переопределяет:
-
isCachedв классеImageInputStreamImpl - Возвращает:
-
true. - См. также:
isCachedFile
public boolean isCachedFile()
false, поскольку этот ImageOutputStream не использует файловый кэш.- Указан в:
-
isCachedFileв интерфейсеImageInputStream - Переопределяет:
-
isCachedFileв классеImageInputStreamImpl - Возвращает:
-
false. - См. также:
isCachedMemory
public boolean isCachedMemory()
true, поскольку этот ImageOutputStream использует кэш в оперативной памяти.- Указан в:
-
isCachedMemoryв интерфейсеImageInputStream - Переопределяет:
-
isCachedMemoryв классеImageInputStreamImpl - Возвращает:
-
true. - См. также:
close
public void close() throws IOException
MemoryCacheImageOutputStream. Все ожидающие записи данные сбрасываются в выходной поток, а кэш освобождается. Поток назначения OutputStream не закрывается.- Исключения:
-
IOException— если произошла ошибка ввода-вывода.
flushBefore
public void flushBefore(long pos) throws IOException
OutputStream или File. Попытка переместиться в сброшенную часть потока приведёт к IndexOutOfBoundsException.- Параметры:
-
pos—long, содержащий длину префикса потока, который можно сбросить в место назначения. - Исключения:
-
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/imageio/stream/MemoryCacheImageOutputStream.html