Класс FileCacheImageInputStream
- Все реализуемые интерфейсы:
Closeable, DataInput, AutoCloseable, ImageInputStream
public class FileCacheImageInputStream extends ImageInputStreamImpl
ImageInputStream, получающая входные данные из обычного InputStream. Для кэширования ранее прочитанных данных используется файл.Краткое описание полей
Поля, объявленные в классе 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 |
Текущая позиция чтения внутри потока. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
FileCacheImageInputStream |
Создает FileCacheImageInputStream, который будет читать данные из заданного InputStream. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает этот FileCacheImageInputStream, закрывая и удаляя файл кэша. |
boolean |
isCached() |
Возвращает true, поскольку этот ImageInputStream кэширует данные, чтобы разрешить перемещение назад по потоку. |
boolean |
isCachedFile() |
Возвращает true, поскольку этот ImageInputStream поддерживает файловый кэш. |
boolean |
isCachedMemory() |
Возвращает false, поскольку этот ImageInputStream не поддерживает кэш в основной памяти. |
int |
read() |
Читает из потока один байт и возвращает его как int в диапазоне от 0 до 255. |
int |
read |
Читает из потока не более len байт и сохраняет их в b, начиная с индекса off. |
Методы, объявленные в классе ImageInputStreamImpl
checkClosed, flush, flushBefore, 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() |
Отбрасывает начальную позицию потока, предшествующую текущей позиции потока. |
void |
flushBefore |
Отбрасывает начальную часть потока, предшествующую указанной позиции. |
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() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
FileCacheImageInputStream
public FileCacheImageInputStream(InputStream stream, File cacheDir) throws IOException
FileCacheImageInputStream, который будет читать данные из заданного InputStream. В качестве кэша используется временный файл. Если cacheDir не равен null и является каталогом, файл будет создан в нем. Если null, будет использоваться системный каталог временных файлов по умолчанию (подробности см. в документации к File.createTempFile).
- Параметры:
-
stream—InputStream, из которого выполняется чтение. -
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— если произошла ошибка ввода-вывода.
isCached
public boolean isCached()
true, поскольку этот ImageInputStream кэширует данные, чтобы разрешить перемещение назад по потоку.- Определено в:
-
isCachedв интерфейсеImageInputStream - Переопределяет:
-
isCachedв классеImageInputStreamImpl - Возвращает:
-
true. - См. также:
isCachedFile
public boolean isCachedFile()
true, поскольку этот ImageInputStream поддерживает файловый кэш.- Определено в:
-
isCachedFileв интерфейсеImageInputStream - Переопределяет:
-
isCachedFileв классеImageInputStreamImpl - Возвращает:
-
true. - См. также:
isCachedMemory
public boolean isCachedMemory()
false, поскольку этот ImageInputStream не поддерживает кэш в основной памяти.- Определено в:
-
isCachedMemoryв интерфейсеImageInputStream - Переопределяет:
-
isCachedMemoryв классеImageInputStreamImpl - Возвращает:
-
false. - См. также:
close
public void close() throws IOException
FileCacheImageInputStream, закрывая и удаляя файл кэша. Исходный InputStream не закрывается.- Исключения:
-
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.