Spec-Zone.ru › OpenJDK 24

Интерфейс ImageInputStream

Все суперинтерфейсы:
AutoCloseable, Closeable, DataInput
Все известные подинтерфейсы:
ImageOutputStream
Все известные реализующие классы:
FileCacheImageInputStream, FileCacheImageOutputStream, FileImageInputStream, FileImageOutputStream, ImageInputStreamImpl, ImageOutputStreamImpl, MemoryCacheImageInputStream, MemoryCacheImageOutputStream
public interface ImageInputStream extends DataInput, Closeable
Интерфейс потока ввода с возможностью поиска для использования ImageReader. Различные источники ввода, такие как InputStream и File, а также будущие источники быстрого ввода/вывода могут быть "обёрнуты" подходящей реализацией этого интерфейса для использования в API ввода/вывода изображений.
См. также:
  • ImageInputStreamImpl
  • FileImageInputStream
  • FileCacheImageInputStream
  • MemoryCacheImageInputStream

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Закрывает поток.
void flush()
Отбрасывает начальную позицию потока до текущей позиции потока.
void flushBefore(long pos)
Отбрасывает начальную часть потока до указанной позиции.
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(byte[] b)
Читает до b.length байтов из потока и сохраняет их в b, начиная с индекса 0.
int read(byte[] b, int off, int len)
Читает до len байтов из потока и сохраняет их в b, начиная с индекса off.
int readBit()
Читает один бит из потока и возвращает его как int со значением 0 или 1.
long readBits(int numBits)
Читает битовую строку из потока и возвращает её как long, где первый прочитанный бит становится наиболее значимым битом результата.
boolean readBoolean()
Читает байт из потока и возвращает значение boolean, если оно отлично от нуля, и false, если оно равно нулю.
byte readByte()
Читает байт из потока и возвращает его как значение byte.
void readBytes(IIOByteBuffer buf, int len)
Читает до len байтов из потока и изменяет предоставленный IIOByteBuffer для указания байтового массива, смещения и длины, где могут быть найдены данные.
char readChar()
Эквивалентно readUnsignedShort, за исключением того, что результат возвращается с использованием типа данных char.
double readDouble()
Читает 8 байтов из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как double.
float readFloat()
Читает 4 байта из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как float.
void readFully(byte[] b)
Читает b.length байтов из потока и сохраняет их в b, начиная с индекса 0.
void readFully(byte[] b, int off, int len)
Читает len байтов из потока и сохраняет их в b, начиная с индекса off.
void readFully(char[] c, int off, int len)
Читает len символов (целых чисел без знака 16 бит) из потока в соответствии с текущим порядком байтов и сохраняет их в c, начиная с индекса off.
void readFully(double[] d, int off, int len)
Читает len двойных чисел (64-битных чисел с плавающей точкой двойной точности IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в d, начиная с индекса off.
void readFully(float[] f, int off, int len)
Читает len чисел с плавающей точкой (32-битных чисел с плавающей точкой одинарной точности IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в f, начиная с индекса off.
void readFully(int[] i, int off, int len)
Читает len целых чисел (целых 32-битных чисел со знаком) из потока в соответствии с текущим порядком байтов и сохраняет их в i, начиная с индекса off.
void readFully(long[] l, int off, int len)
Читает len длинных целых чисел (целых 64-битных чисел со знаком) из потока в соответствии с текущим порядком байтов и сохраняет их в l, начиная с индекса off.
void readFully(short[] s, int off, int len)
Читает 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(long pos)
Устанавливает текущую позицию потока в нужное местоположение.
void setBitOffset(int bitOffset)
Устанавливает битовый смещение на значение от 0 до 7 включительно.
void setByteOrder(ByteOrder byteOrder)
Устанавливает желаемый порядок байтов для будущих чтений значений данных из этого потока.
int skipBytes(int n)
Перемещает позицию потока вперёд на заданное количество байтов.
long skipBytes(long n)
Перемещает позицию потока вперёд на заданное количество байтов.

Краткое описание методов

setByteOrder

void setByteOrder(ByteOrder byteOrder)
Задает желаемый порядок байтов для будущих операций чтения значений данных из этого потока. Например, последовательность байтов '0x01 0x02 0x03 0x04', если она читается как 4-байтовое целое число, будет иметь значение '0x01020304' в сетевом порядке байтов и значение '0x04030201' в обратном порядке байтов.

Класс перечисления 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, указывающее, будет ли использоваться сетевой порядок байтов или его обратный для будущих операций чтения.
См. также:
  • ByteOrder
  • getByteOrder()
  • readBits(int)

getByteOrder

ByteOrder getByteOrder()
Возвращает порядок байтов, с которым значения данных будут читаться из этого потока, как экземпляр перечисления java.nio.ByteOrder.
Возвращает:
одно из значений ByteOrder.BIG_ENDIAN или ByteOrder.LITTLE_ENDIAN, указывающее, какой порядок байтов используется.
См. также:
  • ByteOrder
  • setByteOrder(java.nio.ByteOrder)

read

int read() throws IOException
Читает один байт из потока и возвращает его как целое число от 0 до 255. Если достигнут конец потока, возвращается -1.

Смещение бита в потоке сбрасывается в ноль перед чтением.

Возвращает:
значение байта из потока, как 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
Читает байт из потока и (концептуально) преобразует его в int, маскирует его с помощью 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 - если происходит ошибка ввода-вывода.
См. также:
  • getByteOrder()

readUnsignedShort

int readUnsignedShort() throws IOException
Читает два байта из потока и (концептуально) объединяет их в соответствии с текущим порядком байтов, преобразует результирующее значение в int, маскирует его с помощью 0xffff, чтобы удалить любые биты знакового расширения, и возвращает результат как беззнаковое значение int.

Смещение бита в потоке сбрасывается в ноль перед чтением.

Указано в:
readUnsignedShort в интерфейсе DataInput
Возвращает:
беззнаковое значение short из потока, как int.
Исключения:
EOFException - если поток достигает конца до чтения всех байтов.
IOException - если происходит ошибка ввода-вывода.
См. также:
  • getByteOrder()

readChar

char readChar() throws IOException
Эквивалентно readUnsignedShort, за исключением того, что результат возвращается с использованием типа данных char.

Битовый сдвиг в потоке сбрасывается в ноль перед чтением.

Указано в:
readChar в интерфейсе DataInput
Возвращает:
значение unsigned char из потока.
Издаёт исключения:
EOFException - если поток достигает конца до чтения всех байтов.
IOException - если произошла ошибка ввода-вывода.
См. также:
  • readUnsignedShort()

readInt

int readInt() throws IOException
Считывает 4 байта из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов, возвращая результат как int.

Битовый сдвиг в потоке игнорируется и обрабатывается как ноль.

Указано в:
readInt в интерфейсе DataInput
Возвращает:
значение signed int из потока.
Издаёт исключения:
EOFException - если поток достигает конца до чтения всех байтов.
IOException - если произошла ошибка ввода-вывода.
См. также:
  • getByteOrder()

readUnsignedInt

long readUnsignedInt() throws IOException
Считывает 4 байта из потока, (понятийно) конкатенирует их в соответствии с текущим порядком байтов, преобразует результат в long, маскирует его с помощью 0xffffffffL, чтобы удалить любые биты расширения знака, и возвращает результат как значение unsigned long.

Битовый сдвиг в потоке сбрасывается в ноль перед чтением.

Возвращает:
значение unsigned int из потока в виде long.
Издаёт исключения:
EOFException - если поток достигает конца до чтения всех байтов.
IOException - если произошла ошибка ввода-вывода.
См. также:
  • getByteOrder()

readLong

long readLong() throws IOException
Считывает 8 байтов из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как long.

Битовый сдвиг в потоке сбрасывается в ноль перед чтением.

Указано в:
readLong в интерфейсе DataInput
Возвращает:
значение signed long из потока.
Издаёт исключения:
EOFException - если поток достигает конца до чтения всех байтов.
IOException - если произошла ошибка ввода-вывода.
См. также:
  • getByteOrder()

readFloat

float readFloat() throws IOException
Считывает 4 байта из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как float.

Битовый сдвиг в потоке сбрасывается в ноль перед чтением.

Указано в:
readFloat в интерфейсе DataInput
Возвращает:
значение float из потока.
Издаёт исключения:
EOFException - если поток достигает конца до чтения всех байтов.
IOException - если произошла ошибка ввода-вывода.
См. также:
  • getByteOrder()

readDouble

double readDouble() throws IOException
Считывает 8 байтов из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как double.

Битовый сдвиг в потоке сбрасывается в ноль перед чтением.

Указано в:
readDouble в интерфейсе DataInput
Возвращает:
значение double из потока.
Издаёт исключения:
EOFException - если поток достигает конца до чтения всех байтов.
IOException - если произошла ошибка ввода-вывода.
См. также:
  • getByteOrder()

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
Считывает строку, закодированную в формате modified UTF-8. Общий контракт 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 - если произошла ошибка ввода-вывода.
END_OF_DOCUMENT_MARKER

getBitOffset

int getBitOffset() throws IOException
Возвращает текущее смещение в битах, целое число от 0 до 7 включительно. Смещение в битах неявно обновляется при вызовах метода readBits. Значение 0 соответствует старшему биту, а значение 7 — младшему биту считываемого байта.

Смещение в битах устанавливается в 0 при первом открытии потока и сбрасывается в 0 при вызовах методов seek, skipBytes или любых методов read или readFully.

Возвращает:
целое число, представляющее смещение в битах от 0 до 7 включительно.
Исключения:
IOException — если произошла ошибка ввода-вывода.
См. также:
  • setBitOffset(int)

setBitOffset

void setBitOffset(int bitOffset) throws IOException
Устанавливает смещение в битах на целое число от 0 до 7 включительно. Смещение байта в потоке, возвращаемое методом getStreamPosition, остается неизменным. Значение 0 соответствует старшему биту, а значение 7 — младшему биту считываемого байта.
Параметры:
bitOffset — желаемое смещение, целое число от 0 до 7 включительно.
Исключения:
IllegalArgumentException — если bitOffset не находится в диапазоне от 0 до 7 включительно.
IOException — если произошла ошибка ввода-вывода.
См. также:
  • getBitOffset()

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
Устанавливает текущую позицию потока в желаемое местоположение. Следующее чтение произойдёт в этом месте. Смещение в битах устанавливается в 0.

Исключение 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()
  • isCachedFile()

isCachedMemory

boolean isCachedMemory()
Возвращает true, если этот ImageInputStream кэширует данные для возможности обратного поиска, и кэш хранится в оперативной памяти. Приложения могут использовать эту информацию, чтобы определить, с какой частотой или нужно ли сбрасывать кэш для сохранения ресурсов.
Возвращает:
true, если этот ImageInputStream кэширует данные в оперативной памяти.
См. также:
  • isCached()
  • isCachedFile()

isCachedFile

boolean isCachedFile()
Возвращает true, если этот ImageInputStream кэширует данные для возможности обратного поиска, и кэш хранится во временном файле. Приложения могут использовать эту информацию, чтобы определить, с какой частотой или нужно ли сбрасывать кэш для сохранения ресурсов.
Возвращает:
true, если этот ImageInputStream кэширует данные во временном файле.
См. также:
  • isCached()
  • isCachedMemory()

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API