Spec-Zone.ru › OpenJDK 27

Класс ImageInputStreamImpl

java.lang.Object
javax.imageio.stream.ImageInputStreamImpl
Все реализованные интерфейсы:
Closeable, DataInput, AutoCloseable, ImageInputStream
Прямые известные подклассы:
FileCacheImageInputStream, FileImageInputStream, ImageOutputStreamImpl, MemoryCacheImageInputStream
public abstract class ImageInputStreamImpl extends Object implements ImageInputStream
Абстрактный класс, реализующий интерфейс ImageInputStream. Этот класс предназначен для сокращения количества методов, которые должны реализовывать подклассы.

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

Краткое описание полей

Модификатор и тип Поле Описание
protected int bitOffset
Текущее смещение бита в потоке.
protected ByteOrder byteOrder
Порядок байтов потока в виде экземпляра класса перечисления java.nio.ByteOrder, где ByteOrder.BIG_ENDIAN обозначает сетевой порядок байтов, а ByteOrder.LITTLE_ENDIAN — обратный порядок.
protected long flushedPos
Позиция, до которой данные могут быть отброшены.
protected long streamPos
Текущая позиция чтения в потоке.

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

Конструктор Описание
ImageInputStreamImpl()
Создает ImageInputStreamImpl.

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

Модификатор и тип Метод Описание
protected final void checkClosed()
Выбрасывает IOException, если поток закрыт.
void close()
Закрывает поток.
void flush()
Отбрасывает начальную позицию потока до текущей позиции потока.
void flushBefore(long pos)
Отбрасывает начальную часть потока до указанной позиции.
int getBitOffset()
Возвращает текущее смещение бита — целое число от 0 до 7 включительно.
ByteOrder getByteOrder()
Возвращает порядок байтов, в соответствии с которым значения данных будут считываться из этого потока, в виде экземпляра перечисления java.nio.ByteOrder.
long getFlushedPosition()
Возвращает самую раннюю позицию в потоке, к которой можно выполнить переход.
long getStreamPosition()
Возвращает текущую позицию байта в потоке.
boolean isCached()
Реализация по умолчанию возвращает false.
boolean isCachedFile()
Реализация по умолчанию возвращает false.
boolean isCachedMemory()
Реализация по умолчанию возвращает false.
long length()
Возвращает -1L, указывая на то, что длина потока неизвестна.
void mark()
Помещает текущую позицию потока в стек отмеченных позиций.
abstract int read()
Считывает из потока один байт и возвращает его как int от 0 до 255.
int read(byte[] b)
Вспомогательный метод, вызывающий read(b, 0, b.length).
abstract 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()
Восстанавливает текущие позиции байта и бита в потоке из стека отмеченных позиций.
void seek(long pos)
Устанавливает текущую позицию потока в заданное место.
void setBitOffset(int bitOffset)
Устанавливает смещение бита в целое число от 0 до 7 включительно.
void setByteOrder(ByteOrder byteOrder)
Устанавливает желаемый порядок байтов для последующего чтения значений данных из этого потока.
int skipBytes(int n)
Смещает текущую позицию потока, вызывая seek(getStreamPosition() + n).
long skipBytes(long n)
Смещает текущую позицию потока, вызывая seek(getStreamPosition() + n).

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного интервала реального времени.

Подробное описание полей

byteOrder

protected ByteOrder byteOrder
Порядок байтов в потоке в виде экземпляра класса перечисления java.nio.ByteOrder, где ByteOrder.BIG_ENDIAN указывает на сетевой порядок байтов, а ByteOrder.LITTLE_ENDIAN — на обратный порядок. По умолчанию используется значение ByteOrder.BIG_ENDIAN.

streamPos

protected long streamPos
Текущая позиция чтения в потоке. Подклассы отвечают за поддержание актуального значения этого поля в любом переопределённом ими методе, изменяющем позицию чтения.

bitOffset

protected int bitOffset
Текущее смещение в битах в потоке. Подклассы отвечают за поддержание актуального значения этого поля в любом переопределённом ими методе, изменяющем смещение в битах.

flushedPos

protected long flushedPos
Позиция, до которой данные могут быть отброшены. Переход к меньшей позиции не допускается. Значение flushedPos всегда будет >= 0.

Подробное описание конструкторов

ImageInputStreamImpl

public ImageInputStreamImpl()
Создаёт ImageInputStreamImpl.

Подробное описание методов

checkClosed

protected final void checkClosed() throws IOException
Выбрасывает IOException, если поток был закрыт. Подклассы могут вызывать этот метод из любого своего метода, которому требуется, чтобы поток оставался открытым.
Выбрасывает:
IOException — если поток закрыт.

setByteOrder

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

Для задания порядка байтов используется класс перечисления java.nio.ByteOrder. Значение ByteOrder.BIG_ENDIAN задаёт так называемый порядок от старшего байта к младшему, или сетевой порядок байтов, при котором старший байт идёт первым. Процессоры Motorola и Sparc хранят данные в этом формате, тогда как процессоры Intel используют обратный порядок ByteOrder.LITTLE_ENDIAN.

Порядок байтов не влияет на результаты, возвращаемые методом readBits (или на значение, записываемое методом ImageOutputStream.writeBits).

Определяется в:
setByteOrder в интерфейсе ImageInputStream
Параметры:
byteOrder — одно из значений ByteOrder.BIG_ENDIAN или java.nio.ByteOrder.LITTLE_ENDIAN, указывающее, будет ли для последующего чтения использоваться сетевой порядок байтов или обратный порядок.
См. также:
  • ByteOrder
  • ImageInputStream.getByteOrder()
  • ImageInputStream.readBits(int)

getByteOrder

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

read

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

Подклассы должны предоставить реализацию этого метода. Реализация подкласса должна обновить позицию в потоке перед завершением работы.

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

Определяется в:
read в интерфейсе ImageInputStream
Возвращает:
значение следующего байта в потоке или -1, если достигнут конец файла.
Выбрасывает:
IOException — если поток был закрыт.

read

public int read(byte[] b) throws IOException
Вспомогательный метод, вызывающий read(b, 0, b.length).

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

Определяется в:
read в интерфейсе ImageInputStream
Параметры:
b — массив байтов, в который будут записаны данные.
Возвращает:
фактически считанное количество байтов или -1, обозначающее конец файла.
Выбрасывает:
NullPointerException — если b имеет значение null.
IOException — если возникает ошибка ввода-вывода.

read

public abstract int read(byte[] b, int off, int len) throws IOException
Считывает из потока не более len байтов и сохраняет их в b, начиная с индекса off. Если байты не удалось считать из-за достижения конца потока, возвращается -1.

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

Подклассы должны предоставить реализацию этого метода. Реализация подкласса должна обновить позицию в потоке перед завершением работы.

Определяется в:
read в интерфейсе ImageInputStream
Параметры:
b — массив байтов, в который будут записаны данные.
off — начальная позиция в b, начиная с которой будут записаны данные.
len — максимальное количество байтов для чтения.
Возвращает:
фактически считанное количество байтов или -1, обозначающее конец файла.
Выбрасывает:
IndexOutOfBoundsException — если off отрицательно, len отрицательно или off + len больше b.length.
NullPointerException — если b имеет значение null.
IOException — если возникает ошибка ввода-вывода.

readBytes

public void readBytes(IIOByteBuffer buf, int len) throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из потока не более len байтов и изменяет переданный IIOByteBuffer, указывая массив байтов, смещение и длину, по которым можно найти данные. Вызывающий код не должен пытаться изменять данные в IIOByteBuffer.

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

Определяется в:
readBytes в интерфейсе ImageInputStream
Параметры:
buf — объект IIOByteBuffer, который будет изменён.
len — максимальное количество byte для чтения.
Выбрасывает:
IOException — если возникает ошибка ввода-вывода.

readBoolean

public boolean readBoolean() throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает байт из потока и возвращает значение типа boolean: true, если байт не равен нулю, и false, если равен нулю.

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

Определяется в:
readBoolean в интерфейсе DataInput
Определяется в:
readBoolean в интерфейсе ImageInputStream
Возвращает:
логическое значение из потока.
Выбрасывает:
EOFException — если достигнут конец потока.
IOException — если возникает ошибка ввода-вывода.

readByte

public byte readByte() throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает байт из потока и возвращает его как значение типа byte. Значения байтов от 0x00 до 0x7f представляют целые числа от 0 до 127. Значения от 0x80 до 0xff представляют отрицательные числа от -128 до /1.

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

Определяется в:
readByte в интерфейсе DataInput
Определяется в:
readByte в интерфейсе ImageInputStream
Возвращает:
значение знакового байта из потока.
Выбрасывает:
EOFException — если достигнут конец потока.
IOException — если возникает ошибка ввода-вывода.

readUnsignedByte

public int readUnsignedByte() throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает байт из потока и (концептуально) преобразует его в int, выполняет побитовое И с 0xff, чтобы удалить биты расширения знака, и возвращает результат как значение типа byte.

Таким образом, значения байтов от 0x00 до 0x7f возвращаются как целые числа от 0 до 127. Значения от 0x80 до 0xff, обычно представляющие отрицательные значения типа byte, преобразуются в положительные целые числа от 128 до 255.

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

Определяется в:
readUnsignedByte в интерфейсе DataInput
Определяется в:
readUnsignedByte в интерфейсе ImageInputStream
Возвращает:
значение беззнакового байта из потока.
Выбрасывает:
EOFException — если достигнут конец потока.
IOException — если возникает ошибка ввода-вывода.

readShort

public short readShort() throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из потока два байта, (концептуально) объединяет их в соответствии с текущим порядком байтов и возвращает результат как значение типа short.

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

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

readUnsignedShort

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

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

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

readChar

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

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

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

readInt

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

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

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

readUnsignedInt

public long readUnsignedInt() throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из потока 4 байта, (концептуально) объединяет их в соответствии с текущим порядком байтов, преобразует результат в long, выполняет побитовое И с 0xffffffffL, чтобы удалить биты расширения знака, и возвращает результат как беззнаковое значение типа long.

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

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

readLong

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

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

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

readFloat

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

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

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

readDouble

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

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

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

readLine

public String readLine() throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из входного потока следующую строку текста. Метод считывает последовательные байты, преобразуя каждый байт отдельно в символ, пока не встретит разделитель строк или конец файла; после этого считанные символы возвращаются как String. Обратите внимание: поскольку этот метод обрабатывает байты, он не поддерживает ввод полного набора символов Unicode.

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

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

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

readUTF

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

readFully

public void readFully(byte[] b, int off, int len) throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из потока len байтов и сохраняет их в b, начиная с индекса off. Если достигнут конец потока, будет выброшено java.io.EOFException.

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

Определяется в:
readFully в интерфейсе DataInput
Определяется в:
readFully в интерфейсе ImageInputStream
Параметры:
b — массив байтов, в который будут записаны данные.
off — начальная позиция в b, начиная с которой будут записаны данные.
len — максимальное количество byte для чтения.
Выбрасывает:
EOFException — если поток достигнет конца до чтения всех байтов.
IOException — если возникает ошибка ввода-вывода.

readFully

public void readFully(byte[] b) throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из потока b.length байтов и сохраняет их в b, начиная с индекса 0. Если достигнут конец потока, будет выброшено java.io.EOFException.

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

Определяется в:
readFully в интерфейсе DataInput
Определяется в:
readFully в интерфейсе ImageInputStream
Параметры:
b — массив byte.
Выбрасывает:
EOFException — если поток достигнет конца до чтения всех байтов.
IOException — если возникает ошибка ввода-вывода.

readFully

public void readFully(short[] s, int off, int len) throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из потока len значений типа short (16-разрядных целых чисел со знаком) в соответствии с текущим порядком байтов и сохраняет их в s, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

Определено в:
readFully в интерфейсе ImageInputStream
Параметры:
s — массив значений типа short, в который будут записаны данные.
off — начальная позиция в s, с которой следует выполнять запись.
len — максимальное количество значений типа short, которое нужно считать.
Исключения:
EOFException — если поток достигнет конца до считывания всех байтов.
IOException — если произошла ошибка ввода-вывода.

readFully

public void readFully(char[] c, int off, int len) throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из потока len значений типа char (16-разрядных целых чисел без знака) в соответствии с текущим порядком байтов и сохраняет их в c, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

Определено в:
readFully в интерфейсе ImageInputStream
Параметры:
c — массив значений типа char, в который будут записаны данные.
off — начальная позиция в c, с которой следует выполнять запись.
len — максимальное количество значений типа char, которое нужно считать.
Исключения:
EOFException — если поток достигнет конца до считывания всех байтов.
IOException — если произошла ошибка ввода-вывода.

readFully

public void readFully(int[] i, int off, int len) throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из потока len значений типа int (32-разрядных целых чисел со знаком) в соответствии с текущим порядком байтов и сохраняет их в i, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

Определено в:
readFully в интерфейсе ImageInputStream
Параметры:
i — массив значений типа int, в который будут записаны данные.
off — начальная позиция в i, с которой следует выполнять запись.
len — максимальное количество значений типа int, которое нужно считать.
Исключения:
EOFException — если поток достигнет конца до считывания всех байтов.
IOException — если произошла ошибка ввода-вывода.

readFully

public void readFully(long[] l, int off, int len) throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из потока len значений типа long (64-разрядных целых чисел со знаком) в соответствии с текущим порядком байтов и сохраняет их в l, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

Определено в:
readFully в интерфейсе ImageInputStream
Параметры:
l — массив значений типа long, в который будут записаны данные.
off — начальная позиция в l, с которой следует выполнять запись.
len — максимальное количество значений типа long, которое нужно считать.
Исключения:
EOFException — если поток достигнет конца до считывания всех байтов.
IOException — если произошла ошибка ввода-вывода.

readFully

public void readFully(float[] f, int off, int len) throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из потока len значений типа float (32-разрядных чисел с плавающей точкой одинарной точности IEEE) в соответствии с текущим порядком байтов и сохраняет их в f, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

Определено в:
readFully в интерфейсе ImageInputStream
Параметры:
f — массив значений типа float, в который будут записаны данные.
off — начальная позиция в f, с которой следует выполнять запись.
len — максимальное количество значений типа float, которое нужно считать.
Исключения:
EOFException — если поток достигнет конца до считывания всех байтов.
IOException — если произошла ошибка ввода-вывода.

readFully

public void readFully(double[] d, int off, int len) throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из потока len значений типа double (64-разрядных чисел с плавающей точкой двойной точности IEEE) в соответствии с текущим порядком байтов и сохраняет их в d, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

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

getStreamPosition

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

getBitOffset

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

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

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

setBitOffset

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

readBit

public int readBit() throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из потока один бит и возвращает его как значение типа int со значением 0 или 1. Смещение бита увеличивается на единицу по модулю 8.
Определено в:
readBit в интерфейсе ImageInputStream
Возвращает:
значение типа int со значением 0 или 1.
Исключения:
EOFException — если поток достигнет конца до считывания всех битов.
IOException — если произошла ошибка ввода-вывода.

readBits

public long readBits(int numBits) throws IOException
Описание скопировано из интерфейса: ImageInputStream
Считывает из потока битовую строку и возвращает её как значение типа 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.

Определено в:
readBits в интерфейсе ImageInputStream
Параметры:
numBits — количество битов для считывания в виде значения типа int от 0 до 64 включительно.
Возвращает:
битовую строку в виде значения типа long, в котором последний считанный бит сохранён в младшем бите.
Исключения:
EOFException — если поток достигнет конца до считывания всех битов.
IOException — если произошла ошибка ввода-вывода.

length

public long length()
Возвращает -1L, указывая на то, что длина потока неизвестна. Подклассы должны переопределить этот метод, чтобы предоставлять сведения о фактической длине.
Определено в:
length в интерфейсе ImageInputStream
Возвращает:
-1L, указывая на неизвестную длину.

skipBytes

public int skipBytes(int n) throws IOException
Сдвигает текущую позицию в потоке, вызывая seek(getStreamPosition() + n).

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

Определено в:
skipBytes в интерфейсе DataInput
Определено в:
skipBytes в интерфейсе ImageInputStream
Параметры:
n — количество байтов, на которое нужно переместиться вперёд.
Возвращает:
значение типа int, представляющее количество пропущенных байтов.
Исключения:
IOException — если getStreamPosition выбрасывает IOException при вычислении начальной или конечной позиции.

skipBytes

public long skipBytes(long n) throws IOException
Сдвигает текущую позицию в потоке, вызывая seek(getStreamPosition() + n).

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

Определено в:
skipBytes в интерфейсе ImageInputStream
Параметры:
n — количество байтов, на которое нужно переместиться вперёд.
Возвращает:
значение типа long, представляющее количество пропущенных байтов.
Исключения:
IOException — если getStreamPosition выбрасывает IOException при вычислении начальной или конечной позиции.

seek

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

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

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

Определено в:
seek в интерфейсе ImageInputStream
Параметры:
pos — значение типа long, содержащее требуемую позицию указателя файла.
Исключения:
IOException — если произошла любая другая ошибка ввода-вывода.

mark

public void mark()
Помещает текущую позицию в потоке в стек отмеченных позиций.
Определено в:
mark в интерфейсе ImageInputStream

reset

public void reset() throws IOException
Восстанавливает текущие позиции байта и бита в потоке из стека отмеченных позиций.

Если предыдущая отмеченная позиция находится в отброшенной части потока, будет выброшено исключение IOException.

Определено в:
reset в интерфейсе ImageInputStream
Исключения:
IOException — если произошла ошибка ввода-вывода.

flushBefore

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

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

Определено в:
flushBefore в интерфейсе ImageInputStream
Параметры:
pos — значение типа long, содержащее длину начала потока, которое можно отбросить.
Исключения:
IOException — если произошла ошибка ввода-вывода.

flush

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

getFlushedPosition

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

isCached

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

isCachedMemory

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

isCachedFile

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

close

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, которая содержит более подробные описания для разработчиков, включая общие сведения, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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