Интерфейс ImageInputStream
- Все суперинтерфейсы:
-
AutoCloseable,Closeable,DataInput
- Все известные подинтерфейсы:
ImageOutputStream
- Все известные реализующие классы:
-
FileCacheImageInputStream,FileCacheImageOutputStream,FileImageInputStream,FileImageOutputStream,ImageInputStreamImpl,ImageOutputStreamImpl,MemoryCacheImageInputStream,MemoryCacheImageOutputStream
public interface ImageInputStream extends DataInput, Closeable
ImageReader. Различные источники ввода, такие как InputStream и File, а также будущие источники быстрого ввода/вывода могут быть "обёрнуты" подходящей реализацией этого интерфейса для использования в API ввода/вывода изображений.- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает поток. |
void |
flush() |
Отбрасывает начальную позицию потока до текущей позиции потока. |
void |
flushBefore |
Отбрасывает начальную часть потока до указанной позиции. |
int |
getBitOffset() |
Возвращает текущий битовый смещение, как целое число от 0 до 7 включительно. |
ByteOrder |
getByteOrder() |
Возвращает порядок байтов, с которым будут читаться значения данных из этого потока как экземпляр перечисления java.nio.ByteOrder. |
long |
getFlushedPosition() |
Возвращает самую раннюю позицию в потоке, к которой может быть произведено перемещение. |
long |
getStreamPosition() |
Возвращает текущую байтовую позицию потока. |
boolean |
isCached() |
Возвращает true, если этот ImageInputStream кэширует данные для возможности обратного перемещения. |
boolean |
isCachedFile() |
Возвращает true, если этот ImageInputStream кэширует данные для возможности обратного перемещения, и кэш сохраняется во временном файле. |
boolean |
isCachedMemory() |
Возвращает true, если этот ImageInputStream кэширует данные для возможности обратного перемещения, и кэш сохраняется в оперативной памяти. |
long |
length() |
Возвращает общую длину потока, если она известна. |
void |
mark() |
Помечает позицию в потоке, к которой можно вернуться последующим вызовом reset. |
int |
read() |
Читает один байт из потока и возвращает его как целое число от 0 до 255. |
int |
read |
Читает до b.length байтов из потока и сохраняет их в b, начиная с индекса 0. |
int |
read |
Читает до len байтов из потока и сохраняет их в b, начиная с индекса off. |
int |
readBit() |
Читает один бит из потока и возвращает его как int со значением 0 или 1. |
long |
readBits |
Читает битовую строку из потока и возвращает её как long, где первый прочитанный бит становится наиболее значимым битом результата. |
boolean |
readBoolean() |
Читает байт из потока и возвращает значение boolean, если оно отлично от нуля, и 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 двойных чисел (64-битных чисел с плавающей точкой двойной точности IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в d, начиная с индекса off. |
void |
readFully |
Читает len чисел с плавающей точкой (32-битных чисел с плавающей точкой одинарной точности IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в f, начиная с индекса off. |
void |
readFully |
Читает len целых чисел (целых 32-битных чисел со знаком) из потока в соответствии с текущим порядком байтов и сохраняет их в i, начиная с индекса off. |
void |
readFully |
Читает len длинных целых чисел (целых 64-битных чисел со знаком) из потока в соответствии с текущим порядком байтов и сохраняет их в l, начиная с индекса off. |
void |
readFully |
Читает len коротких целых чисел (целых 16-битных чисел со знаком) из потока в соответствии с текущим порядком байтов и сохраняет их в s, начиная с индекса off. |
int |
readInt() |
Читает 4 байта из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как int. |
String |
readLine() |
Читает следующую строку текста из входного потока. |
long |
readLong() |
Читает 8 байтов из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как long. |
short |
readShort() |
Читает два байта из потока, и (понятийно) конкатенирует их в соответствии с текущим порядком байтов, и возвращает результат как значение short. |
int |
readUnsignedByte() |
Читает байт из потока, и (понятийно) преобразует его в целое число, маскирует его с помощью 0xff для удаления любых бит расширения знака и возвращает его как значение byte. |
long |
readUnsignedInt() |
Читает 4 байта из потока, и (понятийно) конкатенирует их в соответствии с текущим порядком байтов, преобразует результат в long, маскирует его с помощью 0xffffffffL для удаления любых битов расширения знака и возвращает результат как беззнаковое значение long. |
int |
readUnsignedShort() |
Читает два байта из потока, и (понятийно) конкатенирует их в соответствии с текущим порядком байтов, преобразует полученное значение в int, маскирует его с помощью 0xffff для удаления любых битов расширения знака и возвращает результат как беззнаковое значение int. |
String |
readUTF() |
Считывает строку, закодированную в формате изменённого UTF-8. |
void |
reset() |
Возвращает указатель потока в предыдущее положение, включая битовый смещение, на момент последнего несовпадающего вызова mark. |
void |
seek |
Устанавливает текущую позицию потока в нужное местоположение. |
void |
setBitOffset |
Устанавливает битовый смещение на значение от 0 до 7 включительно. |
void |
setByteOrder |
Устанавливает желаемый порядок байтов для будущих чтений значений данных из этого потока. |
int |
skipBytes |
Перемещает позицию потока вперёд на заданное количество байтов. |
long |
skipBytes |
Перемещает позицию потока вперёд на заданное количество байтов. |
Краткое описание методов
setByteOrder
void setByteOrder(ByteOrder byteOrder)
Класс перечисления java.nio.ByteOrder используется для указания порядка байтов. Значение ByteOrder.BIG_ENDIAN указывает так называемый порядок байтов big-endian или сетевой порядок байтов, в котором старший байт идёт первым. Процессоры Motorola и Sparc хранят данные в этом формате, тогда как процессоры Intel хранят данные в обратном ByteOrder.LITTLE_ENDIAN порядке.
Порядок байтов не влияет на результаты, возвращаемые методом readBits (или значение, записанное методом ImageOutputStream.writeBits).
- Параметры:
-
byteOrder- одно из значенийByteOrder.BIG_ENDIANилиjava.nio.ByteOrder.LITTLE_ENDIAN, указывающее, будет ли использоваться сетевой порядок байтов или его обратный для будущих операций чтения. - См. также:
getByteOrder
ByteOrder getByteOrder()
java.nio.ByteOrder.- Возвращает:
- одно из значений
ByteOrder.BIG_ENDIANилиByteOrder.LITTLE_ENDIAN, указывающее, какой порядок байтов используется. - См. также:
read
int read() throws IOException
Смещение бита в потоке сбрасывается в ноль перед чтением.
- Возвращает:
- значение байта из потока, как int, или -1 для обозначения EOF.
- Исключения:
-
IOException- если происходит ошибка ввода-вывода.
read
int read(byte[] b) throws IOException
b.length байтов из потока и сохраняет их в b, начиная с индекса 0. Возвращается количество прочитанных байтов. Если байты не могут быть прочитаны, потому что достигнут конец потока, возвращается -1. Смещение бита в потоке сбрасывается в ноль перед чтением.
- Параметры:
-
b- массив байтов, в который будут записаны данные. - Возвращает:
- количество фактически прочитанных байтов или
-1для обозначения EOF. - Исключения:
-
NullPointerException- еслиbявляетсяnull. -
IOException- если происходит ошибка ввода-вывода.
read
int read(byte[] b, int off, int len) throws IOException
len байтов из потока и сохраняет их в b, начиная с индекса off. Возвращается количество прочитанных байтов. Если байты не могут быть прочитаны, потому что достигнут конец потока, возвращается -1. Смещение бита в потоке сбрасывается в ноль перед чтением.
- Параметры:
-
b- массив байтов, в который будут записаны данные. -
off- начальная позиция вbдля записи. -
len- максимальное количествоbyteдля чтения. - Возвращает:
- количество фактически прочитанных байтов или
-1для обозначения EOF. - Исключения:
-
NullPointerException- еслиbявляетсяnull. -
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольше, чемb.length. -
IOException- если происходит ошибка ввода-вывода.
readBytes
void readBytes(IIOByteBuffer buf, int len) throws IOException
len байтов из потока и изменяет предоставленный IIOByteBuffer, чтобы указать массив байтов, смещение и длину, где можно найти данные. Вызывающий абонент не должен пытаться изменять данные, найденные в IIOByteBuffer. Смещение бита в потоке сбрасывается в ноль перед чтением.
- Параметры:
-
buf- объект IIOByteBuffer, который будет изменён. -
len- максимальное количествоbyteдля чтения. - Исключения:
-
IndexOutOfBoundsException- еслиlenотрицательно. -
NullPointerException- еслиbufявляетсяnull. -
IOException- если происходит ошибка ввода-вывода.
readBoolean
boolean readBoolean() throws IOException
boolean равное true, если он не равен нулю, false, если он равен нулю. Смещение бита в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readBooleanв интерфейсеDataInput - Возвращает:
- булево значение из потока.
- Исключения:
-
EOFException- если достигнут конец потока. -
IOException- если происходит ошибка ввода-вывода.
readByte
byte readByte() throws IOException
byte. Значения байтов между 0x00 и 0x7f представляют целые значения от 0 до 127. Значения между 0x80 и 0xff представляют отрицательные значения от -128 до /1. Смещение бита в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readByteв интерфейсеDataInput - Возвращает:
- знаковое значение байта из потока.
- Исключения:
-
EOFException- если достигнут конец потока. -
IOException- если происходит ошибка ввода-вывода.
readUnsignedByte
int readUnsignedByte() throws IOException
0xff, чтобы удалить любые биты знакового расширения, и возвращает его как значение byte. Таким образом, значения байтов между 0x00 и 0x7f просто возвращаются как целые значения между 0 и 127. Значения между 0x80 и 0xff, которые обычно представляют отрицательные byte значения, будут сопоставлены с положительными целыми числами от 128 до 255.
Смещение бита в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readUnsignedByteв интерфейсеDataInput - Возвращает:
- беззнаковое значение байта из потока.
- Исключения:
-
EOFException- если достигнут конец потока. -
IOException- если происходит ошибка ввода-вывода.
readShort
short readShort() throws IOException
short. Смещение бита в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readShortв интерфейсеDataInput - Возвращает:
- знаковое значение short из потока.
- Исключения:
-
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если происходит ошибка ввода-вывода. - См. также:
readUnsignedShort
int readUnsignedShort() throws IOException
int, маскирует его с помощью 0xffff, чтобы удалить любые биты знакового расширения, и возвращает результат как беззнаковое значение int. Смещение бита в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readUnsignedShortв интерфейсеDataInput - Возвращает:
- беззнаковое значение short из потока, как int.
- Исключения:
-
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если происходит ошибка ввода-вывода. - См. также:
readChar
char readChar() throws IOException
readUnsignedShort, за исключением того, что результат возвращается с использованием типа данных char. Битовый сдвиг в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readCharв интерфейсеDataInput - Возвращает:
- значение unsigned char из потока.
- Издаёт исключения:
-
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода. - См. также:
readInt
int readInt() throws IOException
int. Битовый сдвиг в потоке игнорируется и обрабатывается как ноль.
- Указано в:
-
readIntв интерфейсеDataInput - Возвращает:
- значение signed int из потока.
- Издаёт исключения:
-
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода. - См. также:
readUnsignedInt
long readUnsignedInt() throws IOException
0xffffffffL, чтобы удалить любые биты расширения знака, и возвращает результат как значение unsigned long. Битовый сдвиг в потоке сбрасывается в ноль перед чтением.
- Возвращает:
- значение unsigned int из потока в виде long.
- Издаёт исключения:
-
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода. - См. также:
readLong
long readLong() throws IOException
long. Битовый сдвиг в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readLongв интерфейсеDataInput - Возвращает:
- значение signed long из потока.
- Издаёт исключения:
-
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода. - См. также:
readFloat
float readFloat() throws IOException
float. Битовый сдвиг в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readFloatв интерфейсеDataInput - Возвращает:
- значение float из потока.
- Издаёт исключения:
-
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода. - См. также:
readDouble
double readDouble() throws IOException
double. Битовый сдвиг в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readDoubleв интерфейсеDataInput - Возвращает:
- значение double из потока.
- Издаёт исключения:
-
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода. - См. также:
readLine
String readLine() throws IOException
String. Обратите внимание, что поскольку этот метод обрабатывает байты, он не поддерживает ввод полного набора символов Unicode. Если конец файла встретится до того, как будет прочитан хотя бы один байт, то возвращается null. В противном случае каждый прочитанный байт преобразуется в тип char с помощью расширения нулями. Если встречается символ '\n', он отбрасывается, и чтение прекращается. Если встречается символ '\r', он отбрасывается, и если следующий байт преобразуется в символ '\n', то и он отбрасывается; чтение прекращается. Если конец файла встретится до того, как встретятся любой из символов '\n' и '\r', чтение прекращается. После прекращения чтения возвращается String, содержащий все прочитанные и не отброшенные символы в порядке их следования. Обратите внимание, что каждый символ в этой строке будет иметь значение меньше чем \u0100, то есть (char)256.
Битовый сдвиг в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readLineв интерфейсеDataInput - Возвращает:
- строка, содержащая строку текста из потока.
- Издаёт исключения:
-
IOException- если произошла ошибка ввода-вывода.
readUTF
String readUTF() throws IOException
readUTF состоит в том, что он считывает представление строки символов Unicode, закодированной в формате modified UTF-8; эта строка символов возвращается как String. Сначала считываются два байта, и они используются для построения целого числа без знака 16 бит по аналогии с методом readUnsignedShort, используя сетевой порядок байтов (независимо от текущего порядка байтов). Это целое число называется длиной UTF и определяет количество дополнительных байтов для чтения. Эти байты затем преобразуются в символы, рассматривая их группами. Длина каждой группы вычисляется из значения первого байта группы. Байты, следующие за группой, если таковые имеются, являются первыми байтами следующей группы.
Если первый байт группы соответствует битовой последовательности 0xxxxxxx (где x означает "может быть 0 или 1"), то группа состоит только из этого байта. Байты расширяются нулями, чтобы образовать символ.
Если первый байт группы соответствует битовой последовательности 110xxxxx, то группа состоит из этого байта a и второго байта b. Если байт b отсутствует (потому что байт a был последним из считанных байтов) или байт b не соответствует битовой последовательности 10xxxxxx, то выбрасывается исключение UTFDataFormatException. В противном случае группа преобразуется в символ:
(char)(((a& 0x1F) << 6) | (b & 0x3F))
Если первый байт группы соответствует битовой последовательности 1110xxxx, то группа состоит из этого байта a и ещё двух байтов b и c. Если байт c отсутствует (потому что байт a был одним из последних двух считанных байтов), или байт b или байт c не соответствуют битовой последовательности 10xxxxxx, то выбрасывается исключение UTFDataFormatException. В противном случае группа преобразуется в символ:
(char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
Если первый байт группы соответствует шаблону 1111xxxx или шаблону 10xxxxxx, то выбрасывается исключение UTFDataFormatException. Если во время всего этого процесса встречается конец файла, то выбрасывается исключение java.io.EOFException.
После преобразования каждой группы в символ все символы собираются в том же порядке, в котором их соответствующие группы были прочитаны из входного потока, образуя String, которое возвращается.
Текущая настройка порядка байтов игнорируется.
Битовый сдвиг в потоке сбрасывается в ноль перед чтением.
Примечание: Этот метод не должен использоваться в реализации форматов изображений, использующих стандартный UTF-8, так как модифицированный UTF-8, используемый здесь, несовместим со стандартным UTF-8.
- Указано в:
-
readUTFв интерфейсеDataInput - Возвращает:
- строка, прочитанная из потока.
- Издаёт исключения:
-
EOFException- если этот поток достигает конца до чтения всех байтов. -
UTFDataFormatException- если байты не представляют собой допустимого кодирования строки в формате modified UTF-8. -
IOException- если произошла ошибка ввода-вывода.
readFully
void readFully(byte[] b, int off, int len) throws IOException
len байтов из потока и сохраняет их в b, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Битовый смещение в потоке сбрасывается на ноль перед чтением.
- Указано:
-
readFullyв интерфейсеDataInput - Параметры:
-
b- массив байтов, которые будут записаны. -
off- начальная позиция вbдля записи. -
len- максимальное количествоbyteдля чтения. - Исключения:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольше, чемb.length. -
NullPointerException- еслиbравноnull. -
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
void readFully(byte[] b) throws IOException
b.length байтов из потока и сохраняет их в b, начиная с индекса 0. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Битовый смещение в потоке сбрасывается на ноль перед чтением.
- Указано:
-
readFullyв интерфейсеDataInput - Параметры:
-
b- массивbyte. - Исключения:
-
NullPointerException- еслиbравноnull. -
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
void readFully(short[] s, int off, int len) throws IOException
len коротких целых чисел со знаком (16-разрядных целых чисел) из потока в соответствии с текущим порядком байтов и сохраняет их в s, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Битовый смещение в потоке сбрасывается на ноль перед чтением.
- Параметры:
-
s- массив коротких целых чисел для записи. -
off- начальная позиция вsдля записи. -
len- максимальное количествоshortдля чтения. - Исключения:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольше, чемs.length. -
NullPointerException- еслиsравноnull. -
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
void readFully(char[] c, int off, int len) throws IOException
len символов (целых чисел без знака 16-бит) из потока в соответствии с текущим порядком байтов и сохраняет их в c, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Битовый смещение в потоке сбрасывается на ноль перед чтением.
- Параметры:
-
c- массив символов для записи. -
off- начальная позиция вcдля записи. -
len- максимальное количествоcharдля чтения. - Исключения:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольше, чемc.length. -
NullPointerException- еслиcравноnull. -
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
void readFully(int[] i, int off, int len) throws IOException
len целых чисел (32-разрядных целых чисел со знаком) из потока в соответствии с текущим порядком байтов и сохраняет их в i, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Битовый смещение в потоке сбрасывается на ноль перед чтением.
- Параметры:
-
i- массив целых чисел для записи. -
off- начальная позиция вiдля записи. -
len- максимальное количествоintдля чтения. - Исключения:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольше, чемi.length. -
NullPointerException- еслиiравноnull. -
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
void readFully(long[] l, int off, int len) throws IOException
len длинных целых чисел (64-разрядных целых чисел со знаком) из потока в соответствии с текущим порядком байтов и сохраняет их в l, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Битовый смещение в потоке сбрасывается на ноль перед чтением.
- Параметры:
-
l- массив длинных целых чисел для записи. -
off- начальная позиция вlдля записи. -
len- максимальное количествоlongдля чтения. - Исключения:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольше, чемl.length. -
NullPointerException- еслиlравноnull. -
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
void readFully(float[] f, int off, int len) throws IOException
len чисел с плавающей запятой (32-разрядные числа с плавающей запятой одинарной точности IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в f, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Битовый смещение в потоке сбрасывается на ноль перед чтением.
- Параметры:
-
f- массив чисел с плавающей запятой для записи. -
off- начальная позиция вfдля записи. -
len- максимальное количествоfloatдля чтения. - Исключения:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольше, чемf.length. -
NullPointerException- еслиfравноnull. -
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
void readFully(double[] d, int off, int len) throws IOException
len чисел с плавающей запятой двойной точности (64-разрядные числа с плавающей запятой двойной точности IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в d, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Битовый смещение в потоке сбрасывается на ноль перед чтением.
- Параметры:
-
d- массив чисел с плавающей запятой для записи. -
off- начальная позиция вdдля записи. -
len- максимальное количествоdoubleдля чтения. - Исключения:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольше, чемd.length. -
NullPointerException- еслиdравноnull. -
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
getStreamPosition
long getStreamPosition() throws IOException
- Возвращает:
- long, содержащий позицию потока.
- Исключения:
-
IOException- если произошла ошибка ввода-вывода.
getBitOffset
int getBitOffset() throws IOException
readBits. Значение 0 соответствует старшему биту, а значение 7 — младшему биту считываемого байта. Смещение в битах устанавливается в 0 при первом открытии потока и сбрасывается в 0 при вызовах методов seek, skipBytes или любых методов read или readFully.
- Возвращает:
- целое число, представляющее смещение в битах от 0 до 7 включительно.
- Исключения:
-
IOException— если произошла ошибка ввода-вывода. - См. также:
setBitOffset
void setBitOffset(int bitOffset) throws IOException
getStreamPosition, остается неизменным. Значение 0 соответствует старшему биту, а значение 7 — младшему биту считываемого байта.- Параметры:
-
bitOffset— желаемое смещение, целое число от 0 до 7 включительно. - Исключения:
-
IllegalArgumentException— еслиbitOffsetне находится в диапазоне от 0 до 7 включительно. -
IOException— если произошла ошибка ввода-вывода. - См. также:
readBit
int readBit() throws IOException
0 или 1. Смещение в битах увеличивается на 1 и уменьшается по модулю 8.- Возвращает:
- целое число со значением
0или1. - Исключения:
-
EOFException— если поток достиг конца, прежде чем были прочитаны все биты. -
IOException— если произошла ошибка ввода-вывода.
readBits
long readBits(int numBits) throws IOException
getStreamPosition, в бите, заданном getBitOffset. Смещение в битах увеличивается на numBits и уменьшается по модулю 8. Порядок байтов в потоке не влияет на этот метод. Значение, возвращаемое этим методом, строится так, как будто биты считывались по одному и сдвигались вправо в возвращаемое значение, как показано в следующем псевдокоде:
long accum = 0L;
for (int i = 0; i < numBits; i++) {
accum <<= 1; // Shift left one bit to make room
accum |= readBit();
}
Обратите внимание, что результат readBits(32) может отличаться от результата readInt(), если используется обратный сетевой порядок байтов (т.е., getByteOrder() == false). Если конец потока достигнут, прежде чем все биты были прочитаны, выбрасывается исключение java.io.EOFException.
- Параметры:
-
numBits— количество битов для чтения, целое число от 0 до 64 включительно. - Возвращает:
- битовую строку как целое число, где последний прочитанный бит хранится в младшем значащем бите.
- Исключения:
-
IllegalArgumentException— еслиnumBitsне находится в диапазоне от 0 до 64 включительно. -
EOFException— если поток достиг конца, прежде чем были прочитаны все биты. -
IOException— если произошла ошибка ввода-вывода.
length
long length() throws IOException
-1.- Возвращает:
- целое число, содержащее длину потока, если она известна, или же
-1. - Исключения:
-
IOException— если произошла ошибка ввода-вывода.
skipBytes
int skipBytes(int n) throws IOException
- Определяется в:
-
skipBytesв интерфейсеDataInput - Параметры:
-
n— целое число, содержащее количество байтов для пропуска. - Возвращает:
- целое число, представляющее количество пропущенных байтов.
- Исключения:
-
IOException— если произошла ошибка ввода-вывода.
skipBytes
long skipBytes(long n) throws IOException
skipBytes(int), за исключением того, что он позволяет большее расстояние пропуска.- Параметры:
-
n— целое число, содержащее количество байтов для пропуска. - Возвращает:
- целое число, представляющее количество пропущенных байтов.
- Исключения:
-
IOException— если произошла ошибка ввода-вывода.
seek
void seek(long pos) throws IOException
Исключение IndexOutOfBoundsException будет вызвано, если pos меньше позиции сброса (возвращаемой методом getflushedPosition).
Разрешено перемещаться за конец файла; исключение java.io.EOFException будет вызвано только при выполнении чтения.
- Параметры:
-
pos— целое число, содержащее желаемую позицию указателя файла. - Исключения:
-
IndexOutOfBoundsException— еслиposменьше позиции сброса. -
IOException— если произошла любая другая ошибка ввода-вывода.
mark
void mark()
reset. В отличие от стандартного InputStream, все ImageInputStream поддерживают пометку. Кроме того, вызовы mark и reset могут быть вложены произвольно. В отличие от методов mark, объявленных интерфейсами Reader и InputStream, параметр readLimit не используется. После вызова mark может быть прочитано произвольное количество данных.
Позиция бита, используемая методом readBits, сохраняется и восстанавливается каждой парой вызовов mark и reset.
Обратите внимание, что ImageReader может вызывать flushBefore в рамках операции чтения. Поэтому, если приложение вызывает mark перед передачей этого потока в ImageReader, приложение не должно предполагать, что помеченная позиция останется действительной после завершения операции чтения.
reset
void reset() throws IOException
mark. Вызовы метода reset без соответствующего вызова mark не имеют эффекта.
Исключение IOException будет вызвано, если предыдущая помеченная позиция находится в удаленной части потока.
- Исключения:
-
IOException— если произошла ошибка ввода-вывода.
flushBefore
void flushBefore(long pos) throws IOException
IndexOutOfBoundsException. Вызов flushBefore может позволить классам, реализующим этот интерфейс, освободить ресурсы, такие как память или дисковое пространство, используемые для хранения данных из потока.
- Параметры:
-
pos— целое число, содержащее длину префикса потока, который может быть удалён. - Исключения:
-
IndexOutOfBoundsException— еслиposнаходится в очищенной части потока или за текущей позицией потока. -
IOException— если произошла ошибка ввода-вывода.
flush
void flush() throws IOException
flushBefore(getStreamPosition()).- Исключения:
-
IOException— если произошла ошибка ввода-вывода.
getFlushedPosition
long getFlushedPosition()
flushBefore.- Возвращает:
- самую раннюю допустимую позицию для перехода, целое число.
isCached
boolean isCached()
true, если этот ImageInputStream кэширует данные для возможности обратного перехода. Приложения могут использовать это для определения частоты или необходимости очистки с целью сохранения ресурсов кэша.- Возвращает:
-
true, если этотImageInputStreamкэширует данные. - См. также:
isCachedMemory
boolean isCachedMemory()
true, если этот ImageInputStream кэширует данные для возможности обратного поиска, и кэш хранится в оперативной памяти. Приложения могут использовать эту информацию, чтобы определить, с какой частотой или нужно ли сбрасывать кэш для сохранения ресурсов.- Возвращает:
-
true, если этотImageInputStreamкэширует данные в оперативной памяти. - См. также:
isCachedFile
boolean isCachedFile()
true, если этот ImageInputStream кэширует данные для возможности обратного поиска, и кэш хранится во временном файле. Приложения могут использовать эту информацию, чтобы определить, с какой частотой или нужно ли сбрасывать кэш для сохранения ресурсов.- Возвращает:
-
true, если этотImageInputStreamкэширует данные во временном файле. - См. также:
close
void close() throws IOException
IOException или некорректному поведению. Вызов этого метода может позволить классам, реализующим этот интерфейс, высвободить ресурсы, связанные с потоком, такие как память, дисковое пространство или дескрипторы файлов.- Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеCloseable - Исключения:
-
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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/imageio/stream/ImageInputStream.html