Spec-Zone.ru › OpenJDK 17

Интерфейс 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 указывает так называемый порядок байтов 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
Возвращает:
беззнаковое значение 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 значение.

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

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

readLong

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

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

Указано в:
readLong в интерфейсе DataInput
Возвращает:
знаковое длинное значение из потока.
Выбрасывает:
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
Возвращает текущую байтовую позицию потока. Следующее считывание произойдет, начиная с этого смещения.
Возвращает:
a long содержащий позицию потока.
Исключения:
IOException - если произошла ошибка ввода-вывода.

getBitOffset

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

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

Возвращает:
a содержащий битовое смещение от 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.
Возвращает:
a содержащий значение 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.

Parameters:
numBits - количество битов для чтения, целое число от 0 до 64 включительно.
Returns:
битовая строка, как long, где последний считанный бит хранится в младшем бите.
Throws:
IllegalArgumentException - если numBits не находится в диапазоне от 0 до 64 включительно.
EOFException - если поток достигает конца до чтения всех битов.
IOException - если произошла ошибка ввода-вывода.

length

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

skipBytes

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

skipBytes

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

seek

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

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

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

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

Throws:
IOException - если произошла ошибка ввода-вывода.

flushBefore

void flushBefore(long pos) throws IOException
Отбрасывает начальную часть потока перед указанной позицией. Попытка перейти к смещению внутри очищенной части потока приведёт к IndexOutOfBoundsException.

Вызов flushBefore может позволить классам, реализующим этот интерфейс, освободить ресурсы, такие как память или место на диске, которые используются для хранения данных из потока.

Parameters:
pos - целое число, содержащее длину префикса потока, который можно очистить.
Throws:
pos - если pos находится в очищенной части потока или за текущей позицией потока.
IOException - если произошла ошибка ввода-вывода.

flush

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

getFlushedPosition

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

isCached

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

isCachedMemory

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

isCachedFile

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

close

void close() throws IOException
Закрывает поток. Попытка доступа к закрытому потоку может привести к IOException или некорректной работе. Вызов этого метода может позволить классам, реализующим этот интерфейс, освободить ресурсы, связанные с потоком, такие как память, место на диске или дескрипторы файлов.
Specified by:
close в интерфейсе AutoCloseable
Specified by:
close в интерфейсе Closeable
Throws:
IOException - если произошла ошибка ввода-вывода.

© 1993, 2021, 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/17/docs/api/java.desktop/javax/imageio/stream/ImageInputStream.html

Spec-Zone.ru

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