Класс FileCacheImageOutputStream
- Все реализуемые интерфейсы:
Closeable, DataInput, DataOutput, AutoCloseable, ImageInputStream, ImageOutputStream
public class FileCacheImageOutputStream extends ImageOutputStreamImpl
ImageOutputStream, записывающая выходные данные в обычный 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 |
Текущая позиция чтения в потоке. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
FileCacheImageOutputStream |
Создает FileCacheImageOutputStream, который будет записывать данные в заданный outputStream. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает этот FileCacheImageOutputStream. |
void |
flushBefore |
Сбрасывает все данные до указанной позиции в базовое место назначения, например в OutputStream или File. |
boolean |
isCached() |
Возвращает true, поскольку этот ImageOutputStream кэширует данные, чтобы разрешить перемещение назад. |
boolean |
isCachedFile() |
Возвращает true, поскольку этот ImageOutputStream поддерживает файловый кэш. |
boolean |
isCachedMemory() |
Возвращает false, поскольку этот ImageOutputStream не поддерживает кэш в основной памяти. |
int |
read() |
Считывает один байт из потока и возвращает его как int в диапазоне от 0 до 255. |
int |
read |
Считывает из потока до len байт и сохраняет их в b, начиная с индекса off. |
void |
seek |
Устанавливает текущую позицию в потоке и сбрасывает битовое смещение в 0. |
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 |
Записывает последовательность целых чисел в поток в текущей позиции. |
void |
writeLong |
Записывает в поток 64 бита значения v. |
void |
writeLongs |
Записывает последовательность чисел типа long в поток в текущей позиции. |
void |
writeShort |
Записывает в поток 16 младших битов v. |
void |
writeShorts |
Записывает последовательность чисел типа short в поток в текущей позиции. |
void |
writeUTF |
Записывает в выходной поток два байта длины в сетевом порядке байтов, за которыми следует представление каждого символа строки s в модифицированном формате UTF-8. |
Методы, объявленные в классе 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, 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 |
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 |
Переводит текущий поток в состояние ожидания до пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
FileCacheImageOutputStream
public FileCacheImageOutputStream(OutputStream stream, File cacheDir) throws IOException
FileCacheImageOutputStream, который будет выполнять запись в заданный outputStream. В качестве кэша используется временный файл. Если cacheDir не равно null и является каталогом, файл будет создан в нём. Если оно равно null, будет использоваться системный каталог временных файлов по умолчанию (подробности см. в документации к File.createTempFile).
- Параметры:
-
stream—OutputStream, в который выполняется запись. -
cacheDir—File, указывающий, где следует создать файл кэша, илиnullдля использования системного каталога. - Исключения:
-
IllegalArgumentException— еслиstreamравноnull. -
IllegalArgumentException— еслиcacheDirне равноnull, но не является каталогом. -
IOException— если не удаётся создать файл кэша.
Подробное описание методов
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— если произошла ошибка ввода-вывода.
seek
public void seek(long pos) throws IOException
EOFException будет выброшено только при выполнении чтения. Длина файла не увеличится, пока не будет выполнена запись.- Параметры:
-
pos—long, содержащее требуемую позицию указателя файла. - Исключения:
-
IndexOutOfBoundsException— еслиposменьше сброшенной позиции. -
IOException— если произошла любая другая ошибка ввода-вывода.
isCached
public boolean isCached()
true, поскольку этот ImageOutputStream кэширует данные, чтобы обеспечить возможность перемещения назад.- Определено в:
-
isCachedв интерфейсеImageInputStream - Переопределяет:
-
isCachedв классеImageInputStreamImpl - Возвращает:
-
true. - См. также:
isCachedFile
public boolean isCachedFile()
true, поскольку этот ImageOutputStream использует файловый кэш.- Определено в:
-
isCachedFileв интерфейсеImageInputStream - Переопределяет:
-
isCachedFileв классеImageInputStreamImpl - Возвращает:
-
true. - См. также:
isCachedMemory
public boolean isCachedMemory()
false, поскольку этот ImageOutputStream не использует кэш в оперативной памяти.- Определено в:
-
isCachedMemoryв интерфейсеImageInputStream - Переопределяет:
-
isCachedMemoryв классеImageInputStreamImpl - Возвращает:
-
false. - См. также:
close
public void close() throws IOException
FileCacheImageOutputStream. Все ожидающие данные сбрасываются в выходной поток, а файл кэша закрывается и удаляется. Целевой 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.