Spec-Zone.ru › OpenJDK 21

Интерфейс 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

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

Modifier and Type Method Description
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()
Читает байт из потока, (понятийно) преобразует его в int, маскирует его с помощью 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 указывает так называемый порядок байтов типа «большая эндианность» или сетевой порядок байтов, в котором байт старшего порядка идёт первым. Процессоры 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.

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

Возвращает:
значение байта из потока, как целое число, или -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 — максимальное количество байтов для чтения.
Возвращает:
количество фактически прочитанных байтов или -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 — максимальное количество байтов для чтения.
Исключения:
IndexOutOfBoundsException — если len отрицательное.
NullPointerException — если buf равно null.
IOException — если произошла ошибка ввода-вывода.

readBoolean

boolean readBoolean() throws IOException
Считывает байт из потока и возвращает логическое значение 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 — если произошла ошибка ввода-вывода.
См. также:
  • getByteOrder()

readUnsignedShort

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

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

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

readChar

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

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

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

readInt

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

Смещение бита в потоке игнорируется и обрабатывается так, как будто оно равно нулю.

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

readUnsignedInt

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

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

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

readLong

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

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

Определено в:
readLong в интерфейсе DataInput
Возвращает:
значение 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. Обратите внимание, что поскольку этот метод обрабатывает байты, он не поддерживает ввод полного набора символов Юникода.

Если конец файла обнаруживается до того, как может быть прочитан хотя бы один байт, то возвращается null. В противном случае каждый прочитанный байт преобразуется в тип char с расширением до нуля. Если встречается символ '\n', он отбрасывается, и чтение прекращается. Если встречается символ '\r', он отбрасывается, и если следующий байт преобразуется в символ '\n', то и он отбрасывается; чтение прекращается. Если конец файла достигается до того, как встречаются какие-либо из символов '\n' и '\r', чтение прекращается. После прекращения чтения возвращается String, содержащий все прочитанные и не отброшенные символы в порядке их чтения. Обратите внимание, что каждое значение символа в этой строке будет меньше \u0100, то есть (char)256.

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

Определено в:
readLine в интерфейсе DataInput
Возвращает:
строку, содержащую строку текста из потока.
Выбрасывает:
IOException - если произошла ошибка ввода-вывода.

readUTF

String readUTF() throws IOException
Считывает строку, закодированную в формате модифицированного UTF-8. Общий контракт readUTF заключается в том, что он считывает представление строки символов Юникода, закодированной в формате модифицированного 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 - если байты не представляют собой допустимого кодирования строки в формате модифицированного 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
Возвращает текущую позицию байта потока. Следующее чтение произойдет, начиная со смещения.
Возвращает:
длинное целое число, содержащее позицию потока.
Исключения:
IOException - если произошла ошибка ввода-вывода.

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. Смещение бита увеличивается на единицу и уменьшается по модулю 8.
Возвращает:
целое число, содержащее значение 0 или 1.
Исключения:
EOFException - если поток достигает конца до чтения всех битов.
IOException - если произошла ошибка ввода-вывода.

readBits

long readBits(int numBits) throws IOException
Считывает битовую строку из потока и возвращает её как long, при этом первый считанный бит становится старшим битом результата. Считывание начинается в байте, указанном 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 - количество бит для чтения, как int от 0 до 64 включительно.
Возвращает:
битовую строку, как long с последним прочитанным битом, сохранённым в младшем бите.
Исключения:
IllegalArgumentException - если numBits не находится в диапазоне от 0 до 64 включительно.
EOFException - если поток достиг конца до чтения всех бит.
IOException - если произошла ошибка ввода-вывода.

length

long length() throws IOException
Возвращает общую длину потока, если она известна. В противном случае возвращается -1.
Возвращает:
long содержащий длину потока, если она известна, иначе -1.
Исключения:
IOException - если произошла ошибка ввода-вывода.

skipBytes

int skipBytes(int n) throws IOException
Перемещает позицию потока вперёд на заданное количество байтов. Возможно, что этот метод сможет переместить позицию только на меньшее количество байтов, чем запрошено, например, если достигнут конец потока. В любом случае, возвращается фактическое количество пропущенных байтов. Смещение бита устанавливается в ноль до перемещения позиции.
Задано:
skipBytes в интерфейсе DataInput
Параметры:
n - int содержащий количество байтов, которые нужно пропустить.
Возвращает:
int представляющий количество пропущенных байтов.
Исключения:
IOException - если произошла ошибка ввода-вывода.

skipBytes

long skipBytes(long n) throws IOException
Перемещает позицию потока вперёд на заданное количество байтов. Этот метод идентичен skipBytes(int), за исключением того, что он позволяет большее расстояние пропуска.
Параметры:
n - long содержащий количество байтов, которые нужно пропустить.
Возвращает:
long представляющий количество пропущенных байтов.
Исключения:
IOException - если произошла ошибка ввода-вывода.

seek

void seek(long pos) throws IOException
Устанавливает текущую позицию потока в нужное место. Следующее чтение произойдёт в этом месте. Смещение бита устанавливается в 0.

Будет выброшено исключение IndexOutOfBoundsException, если pos меньше позиции сброса (возвращаемой getflushedPosition).

Разрешается перемещаться за конец файла; будет выброшено исключение java.io.EOFException только если выполняется чтение.

Параметры:
pos - long содержащий желаемую позицию указателя файла.
Исключения:
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 - long содержащий длину префикса потока, который можно сбросить.
Исключения:
IndexOutOfBoundsException - если pos находится в отброшенной части потока или за текущей позицией потока.
IOException - если произошла ошибка ввода-вывода.

flush

void flush() throws IOException
Отбрасывает начальную позицию потока перед текущей позицией потока. Эквивалентно flushBefore(getStreamPosition()).
Исключения:
IOException - если произошла ошибка ввода-вывода.

getFlushedPosition

long getFlushedPosition()
Возвращает самую раннюю позицию в потоке, к которой можно обратиться при переходе. Возвращаемое значение будет максимальным из всех значений, переданных в предыдущие вызовы flushBefore.
Возвращает:
самую раннюю допустимую позицию для перехода, как long.

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, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/imageio/stream/ImageInputStream.html

Spec-Zone.ru

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