Класс FileCacheImageOutputStream
- java.lang.Object
-
- javax.imageio.stream.ImageInputStreamImpl
-
- javax.imageio.stream.ImageOutputStreamImpl
-
- javax.imageio.stream.FileCacheImageOutputStream
- Все реализуемые интерфейсы:
- Closeable, DataInput, DataOutput, AutoCloseable, ImageInputStream, ImageOutputStream
public class FileCacheImageOutputStream extends ImageOutputStreamImpl
Реализация класса ImageOutputStream, которая записывает вывод в обычный OutputStream. Файл используется для кеширования данных до момента их записи в выходной поток.
Поля
Поля, унаследованные от класса javax.imageio.stream.ImageInputStreamImpl
bitOffset, byteOrder, flushedPos, streamPos Конструкторы
| Конструктор и описание |
|---|
FileCacheImageOutputStream(OutputStream stream,
File cacheDir) Создаёт |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
close() Закрывает этот |
void |
flushBefore(long pos) Отбрасывает начальную часть потока перед указанной позицией. |
boolean |
isCached() Возвращает |
boolean |
isCachedFile() Возвращает |
boolean |
isCachedMemory() Возвращает |
long |
length() Возвращает |
int |
read() Считывает один байт из потока и возвращает его как |
int |
read(byte[] b,
int off,
int len) Считывает до |
void |
seek(long pos) Устанавливает текущую позицию потока и сбрасывает смещение бита в 0. |
void |
write(byte[] b,
int off,
int len) Записывает последовательность байтов в поток в текущей позиции. |
void |
write(int b) Записывает один байт в поток в текущей позиции. |
Методы, унаследованные от класса javax.imageio.stream.ImageOutputStreamImpl
flushBits, write, writeBit, writeBits, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeChars, writeDouble, writeDoubles, writeFloat, writeFloats, writeInt, writeInts, writeLong, writeLongs, writeShort, writeShorts, writeUTF Методы, унаследованные от класса javax.imageio.stream.ImageInputStreamImpl
checkClosed, finalize, 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, setBitOffset, setByteOrder, skipBytes, skipBytes Методы, унаследованные от класса java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы, унаследованные от интерфейса javax.imageio.stream.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, setBitOffset, setByteOrder, skipBytes, skipBytes Конструкторы
FileCacheImageOutputStream
public FileCacheImageOutputStream(OutputStream stream,
File cacheDir)
throws IOException Создаёт FileCacheImageOutputStream для записи в указанный outputStream.
В качестве кэша используется временный файл. Если cacheDir не null и является каталогом, файл будет создан в нём. Если это null, будет использован системный каталог временных файлов (см. документацию по File.createTempFile для деталей).
- Параметры:
-
stream-OutputStreamдля записи. -
cacheDir-Fileуказание места создания кэшируемого файла илиnull, чтобы использовать системный каталог. - Исключения:
-
IllegalArgumentException- еслиstreamnull. -
IllegalArgumentException- еслиcacheDirнеnull, но не является каталогом. -
IOException- если кэшируемый файл не может быть создан.
Методы
read
public int read()
throws IOException Описание скопировано из класса: ImageInputStreamImpl
Считывает один байт из потока и возвращает его как int от 0 до 255. Если достигнут конец потока (EOF), возвращается -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 для гарантирования этого.
- Унаследовано от:
-
writeв интерфейсеDataOutput - Унаследовано от:
-
writeв интерфейсеImageOutputStream - Унаследовано от:
-
writeв классе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 для гарантирования этого.
- Унаследовано от:
-
writeв интерфейсеDataOutput - Унаследовано от:
-
writeв интерфейсеImageOutputStream - Унаследовано от:
-
writeв классеImageOutputStreamImpl - Параметры:
-
b- массивbyteдля записи. -
off- смещение начала данных. -
len- количествоbyteдля записи. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
length
public long length()
Описание скопировано из класса: ImageInputStreamImpl
Возвращает -1L для указания того, что длина потока неизвестна. Подклассы должны переопределить этот метод для предоставления фактической информации о длине.
- Унаследовано от:
-
lengthв интерфейсеImageInputStream - Переопределяет:
-
lengthв классеImageInputStreamImpl - Возвращает:
- -1L для указания неизвестной длины.
seek
public void seek(long pos)
throws IOException Устанавливает текущую позицию потока и сбрасывает битовое смещение в 0. Разрешено перемещаться за конец файла; исключение EOFException будет брошено только если выполняется чтение. Длина файла не будет увеличена до выполнения записи.
- Унаследовано от:
-
seekв интерфейсеImageInputStream - Переопределяет:
-
seekв классеImageInputStreamImpl - Параметры:
-
pos-long, содержащий желаемую позицию указателя файла. - Исключения:
-
IndexOutOfBoundsException- еслиposменьше очищенной позиции. -
IOException- если произошла любая другая ошибка ввода-вывода.
isCached
public boolean isCached()
Возвращает true , так как этот ImageOutputStream кеширует данные для возможности обратного поиска.
- Унаследовано от:
-
isCachedв интерфейсеImageInputStream - Переопределяет:
-
isCachedв классеImageInputStreamImpl - Возвращает:
-
true. - См. также:
-
isCachedMemory(),isCachedFile()
isCachedFile
public boolean isCachedFile()
Возвращает true , так как этот ImageOutputStream поддерживает кэш файла.
- Унаследовано от:
-
isCachedFileв интерфейсеImageInputStream - Переопределяет:
-
isCachedFileв классеImageInputStreamImpl - Возвращает:
-
true. - См. также:
-
isCached(),isCachedMemory()
isCachedMemory
public boolean isCachedMemory()
Возвращает false , так как этот ImageOutputStream не поддерживает кэш основной памяти.
- Унаследовано от:
-
isCachedMemoryв интерфейсеImageInputStream - Переопределяет:
-
isCachedMemoryв классеImageInputStreamImpl - Возвращает:
-
false. - См. также:
-
isCached(),isCachedFile()
close
public void close()
throws IOException Закрывает этот FileCacheImageOutputStream. Все ожидающие данные сбрасываются в выходной поток, а кэшируемый файл закрывается и удаляется. Поток назначения OutputStream не закрывается.
- Унаследовано от:
-
closeв интерфейсеCloseable - Унаследовано от:
-
closeв интерфейсеAutoCloseable - Унаследовано от:
-
closeв интерфейсеImageInputStream - Переопределяет:
-
closeв классеImageInputStreamImpl - Исключения:
-
IOException- если произошла ошибка.
flushBefore
public void flushBefore(long pos)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Удаляет начальную часть потока перед указанной позицией. Попытка перейти к смещению внутри очищенной части потока приведёт к IndexOutOfBoundsException.
Вызов flushBefore может позволить классам, реализующим этот интерфейс, освободить ресурсы, такие как память или дисковое пространство, используемые для хранения данных из потока.
- Унаследовано от:
-
flushBeforeв интерфейсеImageInputStream - Унаследовано от:
-
flushBeforeв интерфейсеImageOutputStream - Переопределяет:
-
flushBeforeв классеImageInputStreamImpl - Параметры:
-
pos-long, содержащий длину префикса потока, который можно сбросить. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
© 1993, 2020, 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.