Spec-Zone.ru › OpenJDK 8

Интерфейс ImageInputStream

Все суперинтерфейсы:
AutoCloseable, Closeable, DataInput
Все известные субинтерфейсы:
ImageOutputStream
Все известные реализующие классы:
FileCacheImageInputStream, FileCacheImageOutputStream, FileImageInputStream, FileImageOutputStream, ImageInputStreamImpl, ImageOutputStreamImpl, MemoryCacheImageInputStream, MemoryCacheImageOutputStream

public interface ImageInputStream
extends DataInput, Closeable

Интерфейс потока ввода с возможностью поиска, используемый ImageReaders. Различные источники ввода, такие как InputStreams и Files, а также будущие источники быстрого ввода/вывода могут быть "обёрнуты" подходящей реализацией этого интерфейса для использования API Image I/O.

См. также:
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 чисел с плавающей точкой двойной точности (64-битные числа с плавающей точкой двойной точности IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в d, начиная с индекса off.

void readFully(float[] f, int off, int len)

Считывает len чисел с плавающей точкой одинарной точности (32-битные числа с плавающей точкой одинарной точности IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в f, начиная с индекса off.

void readFully(int[] i, int off, int len)

Считывает len целых чисел (знаковые 32-битные целые числа) из потока в соответствии с текущим порядком байтов и сохраняет их в i, начиная с индекса off.

void readFully(long[] l, int off, int len)

Считывает len длинных целых чисел (знаковые 64-битные целые числа) из потока в соответствии с текущим порядком байтов и сохраняет их в l, начиная с индекса off.

void readFully(short[] s, int off, int len)

Считывает len коротких целых чисел (знаковые 16-битные целые числа) из потока в соответствии с текущим порядком байтов и сохраняет их в s, начиная с индекса off.

int readInt()

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

String readLine()

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

long readLong()

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

short readShort()

Считывает два байта из потока и (концептуально) объединяет их в соответствии с текущим порядком байтов и возвращает результат как значение short.

int readUnsignedByte()

Считывает байт из потока и (концептуально) преобразует его в целое число, маскирует его с помощью 0xff, чтобы удалить биты расширения знака, и возвращает его как значение byte.

long readUnsignedInt()

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

int readUnsignedShort()

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

String readUTF()

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

readUnsignedInt

long readUnsignedInt()
              throws IOException

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

readDouble

double readDouble()
           throws IOException

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

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

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

readLine

String readLine()
         throws IOException

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

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

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

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

readUTF

String readUTF()
        throws IOException

Считывает строку, закодированную с использованием формата modified UTF-8. Общий контракт readUTF заключается в том, что он считывает представление строки символов Unicode, закодированной в формате modified UTF-8; эта строка символов затем возвращается как String.

Сначала считываются два байта, которые используются для построения беззнакового 16-битного целого числа способом, аналогичным методу readUnsignedShort, используя сетевой порядок байтов (независимо от текущей настройки порядка байтов). Это целочисленное значение называется длиной UTF и указывает количество дополнительных байтов, которые необходимо прочитать. Затем эти байты преобразуются в символы путем рассмотрения их группами. Длина каждой группы вычисляется по значению первого байта группы. Следующий за группой байт, если таковой имеется, является первым байтом следующей группы.

Если первый байт группы соответствует битовому шаблону 0xxxxxxx (где x означает «может быть 0 или 1»), то группа состоит только из этого байта. Байты расширяются нулями, чтобы сформировать символ.

Если первый байт группы соответствует битовому шаблону 110xxxxx, то группа состоит из этого байта a и второго байта b. Если байта b нет (потому что байт a был последним из считанных байтов), или если байт b не соответствует битовому шаблону 10xxxxxx, то выбрасывается UTFDataFormatException. В противном случае группа преобразуется в символ:

(char)(((a& 0x1F) << 6) | (b & 0x3F))
Если первый байт группы соответствует битовому шаблону 1110xxxx, то группа состоит из этого байта a и еще двух байтов b и c. Если байта c нет (потому что байт a был одним из последних двух считанных байтов), или байт b или байт c не соответствует битовому шаблону 10xxxxxx, то выбрасывается UTFDataFormatException. В противном случае группа преобразуется в символ:
(char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
Если первый байт группы соответствует шаблону 1111xxxx или шаблону 10xxxxxx, то выбрасывается UTFDataFormatException.

Если в любой момент этого процесса встречен конец файла, то выбрасывается java.io.EOFException.

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

Текущая настройка порядка байтов игнорируется.

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

Примечание: Этот метод не следует использовать при реализации форматов изображений, использующих стандартный UTF-8, поскольку используемый здесь модифицированный UTF-8 несовместим со стандартным UTF-8.

Указано в:
readUTF в интерфейсе DataInput
Возвращает:
строку, прочитанную из потока.
Исключения:
EOFException - если этот поток достигнет конца до считывания всех байтов.
UTFDataFormatException - если байты не представляют собой допустимое кодирование строки в модифицированном UTF-8.
IOException - если произошла ошибка ввода-вывода.

readFully

void readFully(byte[] b,
               int off,
               int len)
        throws IOException

Считывает len байтов из потока и сохраняет их в b начиная с индекса off. Если достигнут конец потока, будет выброшено java.io.EOFException.

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

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

readFully

void readFully(byte[] b)
        throws IOException

Считывает b.length байтов из потока и сохраняет их в b начиная с индекса 0. Если достигнут конец потока, будет выброшено java.io.EOFException.

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

Указано в:
readFully в интерфейсе DataInput
Параметры:
b - массив byte.
Исключения:
NullPointerException - если b равно null.
EOFException - если поток достигнет конца до считывания всех байтов.
IOException - если произошла ошибка ввода-вывода.

readFully

void readFully(short[] s,
               int off,
               int len)
        throws IOException

Считывает len коротких целых чисел (знаковые 16-битные целые числа) из потока в соответствии с текущим порядком байтов и сохраняет их в s начиная с индекса off. Если достигнут конец потока, будет выброшено java.io.EOFException.

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

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

readFully

void readFully(char[] c,
               int off,
               int len)
        throws IOException

Читает len символов (беззнаковые 16-битные целые числа) из потока в соответствии с текущим порядком байтов и сохраняет их в c начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

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

readFully

void readFully(int[] i,
               int off,
               int len)
        throws IOException

Читает len целых чисел (знаковые 32-битные целые числа) из потока в соответствии с текущим порядком байтов и сохраняет их в i начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

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

readFully

void readFully(long[] l,
               int off,
               int len)
        throws IOException

Читает len длинных целых чисел (знаковые 64-битные целые числа) из потока в соответствии с текущим порядком байтов и сохраняет их в l начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

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

readFully

void readFully(float[] f,
               int off,
               int len)
        throws IOException

Читает len чисел с плавающей точкой (32-битные числа с одинарной точностью IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в f начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

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

readFully

void readFully(double[] d,
               int off,
               int len)
        throws IOException

Читает len чисел с плавающей точкой двойной точности (64-битные числа с двойной точностью IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в d начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.

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

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

getStreamPosition

long getStreamPosition()
                throws IOException

Возвращает текущую позицию байта потока. Следующее чтение будет выполнено начиная с этого смещения.

Возвращает:
длинное целое число, содержащее позицию потока.
Исключения:
IOException - если произошла ошибка ввода-вывода.

getBitOffset

int getBitOffset()
          throws IOException

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

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

Возвращает:
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 - если произошла ошибка ввода-вывода.

© 1993, 2020, 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