Класс 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 |
Создаёт MemoryCacheImageOutputStream, который будет записывать данные в указанный OutputStream. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает этот MemoryCacheImageOutputStream. |
void |
flushBefore |
Сбрасывает все данные до указанной позиции в базовое место назначения, например в OutputStream или File. |
boolean |
isCached() |
Возвращает true, поскольку этот ImageOutputStream кэширует данные, чтобы разрешить перемещение назад по потоку. |
boolean |
isCachedFile() |
Возвращает false, поскольку этот ImageOutputStream не поддерживает файловый кэш. |
boolean |
isCachedMemory() |
Возвращает true, поскольку этот ImageOutputStream поддерживает кэш в оперативной памяти. |
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 | Модификатор и тип | Метод | Описание |
|---|---|---|
protected final void |
flushBits() |
Если смещение в битах не равно нулю, устанавливает оставшиеся биты текущего байта в 0 и перемещает позицию потока на один байт вперёд. |
void |
write |
Записывает последовательность байтов в поток в текущей позиции. |
void |
writeBit |
Записывает в поток один бит, заданный младшим значащим битом аргумента, в текущем смещении в битах внутри текущей позиции байта. |
void |
writeBits |
Записывает в поток последовательность битов, заданную numBits младшими значащими битами аргумента bits в порядке слева направо, в текущем смещении в битах внутри текущей позиции байта. |
void |
writeBoolean |
Записывает в поток значение boolean. |
void |
writeByte |
Записывает в поток 8 младших битов v. |
void |
writeBytes |
Записывает строку в выходной поток. |
void |
writeChar |
Этот метод является синонимом writeShort. |
void |
writeChars |
Записывает последовательность символов в поток в текущей позиции. |
void |
writeChars |
Записывает строку в выходной поток. |
void |
writeDouble |
Записывает в выходной поток значение double, состоящее из четырёх байтов. |
void |
writeDoubles |
Записывает последовательность значений типа double в поток в текущей позиции. |
void |
writeFloat |
Записывает в выходной поток значение float, состоящее из четырёх байтов. |
void |
writeFloats |
Записывает последовательность значений типа float в поток в текущей позиции. |
void |
writeInt |
Записывает в поток 32 бита значения v. |
void |
writeInts |
Записывает последовательность значений типа int в поток в текущей позиции. |
void |
writeLong |
Записывает в поток 64 бита значения v. |
void |
writeLongs |
Записывает последовательность значений типа long в поток в текущей позиции. |
void |
writeShort |
Записывает в поток 16 младших битов v. |
void |
writeShorts |
Записывает последовательность значений типа short в поток в текущей позиции. |
void |
writeUTF |
Записывает в выходной поток два байта с информацией о длине в сетевом порядке байтов, а затем представление модифицированного 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 |
Вспомогательный метод, вызывающий 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 |
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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— если произошла ошибка ввода-вывода.
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.