Spec-Zone.ru › OpenJDK 25

Интерфейс 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: true, если байт ненулевой, или 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 значений double (64-разрядных чисел с плавающей запятой двойной точности IEEE) в соответствии с текущим порядком байтов и помещает их в d, начиная с индекса off.
void readFully(float[] f, int off, int len)
Считывает из потока len значений float (32-разрядных чисел с плавающей запятой одинарной точности IEEE) в соответствии с текущим порядком байтов и помещает их в f, начиная с индекса off.
void readFully(int[] i, int off, int len)
Считывает из потока len значений int (знаковых 32-разрядных целых чисел) в соответствии с текущим порядком байтов и помещает их в i, начиная с индекса off.
void readFully(long[] l, int off, int len)
Считывает из потока len значений long (знаковых 64-разрядных целых чисел) в соответствии с текущим порядком байтов и помещает их в l, начиная с индекса off.
void readFully(short[] s, int off, int len)
Считывает из потока len значений short (знаковых 16-разрядных целых чисел) в соответствии с текущим порядком байтов и помещает их в s, начиная с индекса off.
int readInt()
Считывает из потока 4 байта и (концептуально) объединяет их в соответствии с текущим порядком байтов, возвращая результат в виде int.
String readLine()
Считывает следующую строку текста из входного потока.
long readLong()
Считывает из потока 8 байт и (концептуально) объединяет их в соответствии с текущим порядком байтов, возвращая результат в виде long.
short readShort()
Считывает из потока два байта и (концептуально) объединяет их в соответствии с текущим порядком байтов, возвращая результат в виде значения типа short.
int readUnsignedByte()
Считывает байт из потока, (концептуально) преобразует его в int, применяет к нему маску 0xff, чтобы удалить биты расширения знака, и возвращает результат в виде значения типа byte.
long readUnsignedInt()
Считывает из потока 4 байта, (концептуально) объединяет их в соответствии с текущим порядком байтов, преобразует результат в long, применяет к нему маску 0xffffffffL, чтобы удалить биты расширения знака, и возвращает результат в виде беззнакового значения типа long.
int readUnsignedShort()
Считывает из потока два байта, (концептуально) объединяет их в соответствии с текущим порядком байтов, преобразует полученное значение в int, применяет к нему маску 0xffff, чтобы удалить биты расширения знака, и возвращает результат в виде беззнакового значения типа int.
String readUTF()
Считывает строку, закодированную в формате модифицированного UTF-8.
void reset()
Возвращает указатель потока в его предыдущее положение, включая смещение в битах, которое было зафиксировано во время последнего невстреченного парного вызова 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(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
Возвращает:
значение int со знаком из потока.
Выбрасывает:
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. Поскольку этот метод обрабатывает байты, он не поддерживает ввод полного набора символов Unicode.

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

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

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

readUTF

String readUTF() throws IOException
Читает строку, закодированную в формате модифицированного UTF-8. Общее описание контракта метода readUTF: он считывает представление строки символов Unicode, закодированной в формате модифицированного 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
Возвращает:
строку String, прочитанную из потока.
Выбрасывает:
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 значений short (знаковых 16-битных целых чисел) в соответствии с текущим порядком байтов и сохраняет их в s, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

Параметры:
s — массив значений short, в который будут записаны данные.
off — начальная позиция в s, начиная с которой будут записываться данные.
len — максимальное количество значений short (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 значений char (беззнаковых 16-битных целых чисел) в соответствии с текущим порядком байтов и сохраняет их в c, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

Параметры:
c — массив значений char, в который будут записаны данные.
off — начальная позиция в c, начиная с которой будут записываться данные.
len — максимальное количество значений char (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 значений int (знаковых 32-битных целых чисел) в соответствии с текущим порядком байтов и сохраняет их в i, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

Параметры:
i — массив значений int, в который будут записаны данные.
off — начальная позиция в i, начиная с которой будут записываться данные.
len — максимальное количество значений int (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 значений long (знаковых 64-битных целых чисел) в соответствии с текущим порядком байтов и сохраняет их в l, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

Параметры:
l — массив значений long, в который будут записаны данные.
off — начальная позиция в l, начиная с которой будут записываться данные.
len — максимальное количество значений long (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 значений float (32-битных чисел с плавающей точкой одинарной точности IEEE) в соответствии с текущим порядком байтов и сохраняет их в f, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

Параметры:
f — массив значений float, в который будут записаны данные.
off — начальная позиция в f, начиная с которой будут записываться данные.
len — максимальное количество значений float (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 значения типа double (64-разрядные числа с плавающей точкой двойной точности по стандарту IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в d, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

Параметры:
d — массив значений типа double, в который производится запись.
off — начальная позиция для записи в d.
len — максимальное количество значений типа double для чтения.
Исключения:
IndexOutOfBoundsException — если off отрицательно, len отрицательно или off + len больше, чем d.length.
NullPointerException — если d равно null.
EOFException — если достигнут конец потока до чтения всех байтов.
IOException — если произошла ошибка ввода-вывода.

getStreamPosition

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

getBitOffset

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

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

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

setBitOffset

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

readBit

int readBit() throws IOException
Считывает из потока один бит и возвращает его как значение типа int со значением 0 или 1. Битовое смещение увеличивается на единицу по модулю 8.
Возвращает:
значение типа int со значением 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 — если произошла ошибка ввода-вывода.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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