Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface ImageInputStream extends DataInput, Closeable
ImageReader
s. Различные входные источники, такой как InputStream
s и File
s, так же как будущие быстрые источники ввода-вывода может быть "обернут" подходящей реализацией этого интерфейса для использования API ввода-вывода Изображения.Модификатор и Тип | Метод и Описание |
---|---|
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)
Читает строку битов из потока и возвращает это как a
long , с первым разрядным чтением, становящимся старшим значащим битом вывода. |
boolean |
readBoolean()
Читает байт из потока и возвращает a
boolean значение true если это является ненулевым, false если это - нуль. |
byte |
readByte()
Читает байт из потока и возвращает это как a
byte значение. |
void |
readBytes(IIOByteBuffer buf, int len)
Чтения до
len байты от потока, и изменяют предоставленный IIOByteBuffer чтобы указать на байтовый массив, сместите, и длина, где данные могут быть найдены. |
char |
readChar()
Эквивалентный
readUnsignedShort , за исключением того, что результат возвращается, используя char тип данных. |
double |
readDouble()
Чтения 8 байтов от потока, и (концептуально) связывают их согласно текущему порядку байтов и возвращают результат как a
double . |
float |
readFloat()
Чтения 4 байта от потока, и (концептуально) связывают их согласно текущему порядку байтов и возвращают результат как a
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 ints (подписал 32-разрядные целые числа) от потока согласно текущему порядку байтов, и хранит их в i запуск по индексу off . |
void |
readFully(long[] l, int off, int len)
Чтения
len longs (подписал 64-разрядные целые числа) от потока согласно текущему порядку байтов, и хранит их в l запуск по индексу off . |
void |
readFully(short[] s, int off, int len)
Чтения
len шорты (подписал 16-разрядные целые числа) от потока согласно текущему порядку байтов, и хранят их в s запуск по индексу off . |
int |
readInt()
Чтения 4 байта от потока, и (концептуально) связывают их согласно текущему порядку байтов и возвращают результат как
int . |
Строка |
readLine()
Читает следующую строку текста от входного потока.
|
long |
readLong()
Чтения 8 байтов от потока, и (концептуально) связывают их согласно текущему порядку байтов и возвращают результат как a
long . |
short |
readShort()
Чтения два байта от потока, и (концептуально) связывают их согласно текущему порядку байтов, и возвращают результат как a
short значение. |
int |
readUnsignedByte()
Читает байт из потока, и (концептуально) преобразовывает это в интервал, маскирует это с
0xff чтобы снять изоляцию с любых битов расширения знака, и возвратов это как a byte значение. |
long |
readUnsignedInt()
Чтения 4 байта от потока, и (концептуально) связывают их согласно текущему порядку байтов, преобразовывают результат в длинное, маски это с
0xffffffffL чтобы снять изоляцию с любых битов расширения знака, и возвратов результат как без знака long значение. |
int |
readUnsignedShort()
Чтения два байта от потока, и (концептуально) связывают их согласно текущему порядку байтов, преобразовывают получающееся значение в
int , маскирует это с 0xffff чтобы снять изоляцию с любого расширения знака buts, и возвратов результат как без знака int значение. |
Строка |
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)
Перемещает потоковую позицию вперед данным числом байтов.
|
void setByteOrder(ByteOrder byteOrder)
Класс перечисления 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)
ByteOrder getByteOrder()
java.nio.ByteOrder
перечисление.ByteOrder.BIG_ENDIAN
или ByteOrder.LITTLE_ENDIAN
, указание, какой порядок байтов используется.ByteOrder
, setByteOrder(java.nio.ByteOrder)
int read() throws IOException
Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
IOException
- если ошибка ввода-вывода происходит.int read(byte[] b) throws IOException
b.length
байты от потока, и хранят их в b
запуск по индексу 0. Число чтения байтов возвращается. Если никакие байты не могут быть считаны, потому что конец потока был достигнут,-1 возвращается. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
b
- массив байтов, которые будут записаны.-1
указать на EOF.NullPointerException
- если b
null
.IOException
- если ошибка ввода-вывода происходит.int read(byte[] b, int off, int len) throws IOException
len
байты от потока, и хранят их в b
запуск по индексу off
. Число чтения байтов возвращается. Если никакие байты не могут быть считаны, потому что конец потока был достигнут, -1
возвращается. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
b
- массив байтов, которые будут записаны.off
- стартовая позиция в пределах b
записать в.len
- максимальное количество byte
s, чтобы читать.-1
указать на EOF.NullPointerException
- если b
null
.IndexOutOfBoundsException
- если off
отрицательно, len
отрицательно, или off + len
больше чем b.length
.IOException
- если ошибка ввода-вывода происходит.void readBytes(IIOByteBuffer buf, int len) throws IOException
len
байты от потока, и изменяют предоставленный IIOByteBuffer
чтобы указать на байтовый массив, сместите, и длина, где данные могут быть найдены. Вызывающая сторона не должна попытаться изменить данные, найденные в IIOByteBuffer
. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
buf
- IIOByteBuffer возражает, чтобы быть измененным.len
- максимальное количество byte
s, чтобы читать.IndexOutOfBoundsException
- если len
отрицательно.NullPointerException
- если buf
null
.IOException
- если ошибка ввода-вывода происходит.boolean readBoolean() throws IOException
boolean
значение true
если это является ненулевым, false
если это - нуль. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readBoolean
в интерфейсе DataInput
EOFException
- если конец потока достигается.IOException
- если ошибка ввода-вывода происходит.byte readByte() throws IOException
byte
значение. Байт оценивает между 0x00
и 0x7f
представьте целочисленные значения между 0
и 127
. Значения между 0x80
и 0xff
представьте отрицательные величины от -128
к /1
. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readByte
в интерфейсе DataInput
EOFException
- если конец потока достигается.IOException
- если ошибка ввода-вывода происходит.int readUnsignedByte() throws IOException
0xff
чтобы снять изоляцию с любых битов расширения знака, и возвратов это как a byte
значение. Таким образом байт оценивает между 0x00
и 0x7f
просто возвращаются как целочисленные значения между 0
и 127
. Значения между 0x80
и 0xff
, которые обычно представляют отрицательный byte
значения, будет отображен в положительные целые числа между 128
и 255
.
Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readUnsignedByte
в интерфейсе DataInput
EOFException
- если конец потока достигается.IOException
- если ошибка ввода-вывода происходит.short readShort() throws IOException
short
значение. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readShort
в интерфейсе DataInput
EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.getByteOrder()
int readUnsignedShort() throws IOException
int
, маскирует это с 0xffff
чтобы снять изоляцию с любого расширения знака buts, и возвратов результат как без знака int
значение. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readUnsignedShort
в интерфейсе DataInput
EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.getByteOrder()
char readChar() throws IOException
readUnsignedShort
, за исключением того, что результат возвращается, используя char
тип данных. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readChar
в интерфейсе DataInput
EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.readUnsignedShort()
int readInt() throws IOException
int
. Разрядное смещение в потоке игнорируется и обрабатывается, как если бы это был нуль.
readInt
в интерфейсе DataInput
EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.getByteOrder()
long readUnsignedInt() throws IOException
0xffffffffL
чтобы снять изоляцию с любых битов расширения знака, и возвратов результат как без знака long
значение. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.getByteOrder()
long readLong() throws IOException
long
. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readLong
в интерфейсе DataInput
EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.getByteOrder()
float readFloat() throws IOException
float
. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readFloat
в интерфейсе DataInput
EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.getByteOrder()
double readDouble() throws IOException
double
. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readDouble
в интерфейсе DataInput
EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.getByteOrder()
String readLine() throws IOException
String
. Отметьте, что, потому что этот метод обрабатывает байты, он не поддерживает ввод полного набора символов Unicode. Если с концом файла встречаются прежде, чем даже один байт может быть считан, то null
возвращается. Иначе, каждый байт, который читается, преобразовывается в тип char
дополнением нулями. Если символ '\n'
встречается, это отбрасывается, и чтение прекращается. Если символ '\r'
встречается, это отбрасывается и, если следующий байт преобразовывает в символ '\n'
, тогда это отбрасывается также; чтение тогда прекращается. Если с концом файла встречаются перед любым из символов '\n'
и '\r'
встречается, чтение прекращается. Как только чтение прекратилось, a String
возвращается, который содержит все чтение символов и не отброшенный, взятый в порядке. Отметьте, что у каждого символа в этой строке будет значение меньше чем \u0100
, то есть, (char)256
.
Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readLine
в интерфейсе DataInput
IOException
- если ошибка ввода-вывода происходит.String readUTF() throws IOException
readUTF
это, это читает представление символьной строки Unicode, закодированной в измененном формате UTF-8; эта строка символов тогда возвращается как a String
. Во-первых, два байта читаются и используются, чтобы создать 16-разрядное целое число без знака таким образом readUnsignedShort
метод, используя сетевой порядок байтов (независимо от текущей установки порядка байтов). Это целочисленное значение вызывают длиной UTF и определяет число дополнительных байтов, которые будут считаны. Эти байты тогда преобразовываются в символы, рассматривая их в группах. Длина каждой группы вычисляется из значения первого байта группы. Байт после группы, если таковые вообще имеются, является первым байтом следующей группы.
Если первый байт группы соответствует комбинацию двоичных разрядов 0xxxxxxx
(где x
означает, "может быть 0
или 1
"), тогда группа состоит из только того байта. Байт расширяется до нуля, чтобы сформировать символ.
Если первый байт группы соответствует комбинацию двоичных разрядов 110xxxxx
, тогда группа состоит из того байта a
и второй байт b
. Если нет никакого байта b
(потому что байт a
был последний из байтов, которые будут считаны), или если байт b
не соответствует комбинацию двоичных разрядов 10xxxxxx
, тогда a UTFDataFormatException
бросается. Иначе, группа преобразовывается в символ:
(char)(((a& 0x1F) << 6) | (b & 0x3F))
Если первый байт группы соответствует комбинацию двоичных разрядов 1110xxxx
, тогда группа состоит из того байта a
и еще два байта b
и c
. Если нет никакого байта c
(потому что байт a
был один из последних двух из байтов, которые будут считаны), или любой байт b
или байт c
не соответствует комбинацию двоичных разрядов 10xxxxxx
, тогда a UTFDataFormatException
бросается. Иначе, группа преобразовывается в символ:
(char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
Если первый байт группы соответствует образец 1111xxxx
или образец 10xxxxxx
, тогда a UTFDataFormatException
бросается. Если с концом файла встречаются в любое время во время этого всего процесса, то EOFException
бросается.
После того, как каждая группа была преобразована в символ этим процессом, символы собираются в том же самом порядке, в котором их соответствующие группы были считаны из входного потока, чтобы сформировать a String
, который возвращается.
Текущая установка порядка байтов игнорируется.
Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
Отметьте: Этот метод не должен использоваться в реализации форматов изображения, которые используют стандартный UTF-8, потому что измененный UTF-8, используемый здесь, является несовместимым со стандартным UTF-8.
readUTF
в интерфейсе DataInput
EOFException
- если этот поток достигает конца прежде, чем считать все байты.UTFDataFormatException
- если байты не представляют допустимое измененное кодирование UTF-8 строки.IOException
- если ошибка ввода-вывода происходит.void readFully(byte[] b, int off, int len) throws IOException
len
байты от потока, и хранят их в b
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readFully
в интерфейсе DataInput
b
- массив байтов, которые будут записаны.off
- стартовая позиция в пределах b
записать в.len
- максимальное количество byte
s, чтобы читать.IndexOutOfBoundsException
- если off
отрицательно, len
отрицательно, или off + len
больше чем b.length
.NullPointerException
- если b
null
.EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.void readFully(byte[] b) throws IOException
b.length
байты от потока, и хранят их в b
запуск по индексу 0
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readFully
в интерфейсе DataInput
b
- массив byte
s.NullPointerException
- если b
null
.EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.void readFully(short[] s, int off, int len) throws IOException
len
шорты (подписал 16-разрядные целые числа) от потока согласно текущему порядку байтов, и хранят их в s
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
s
- массив шорт, которые будут записаны.off
- стартовая позиция withinb, чтобы записать в.len
- максимальное количество short
s, чтобы читать.IndexOutOfBoundsException
- если off
отрицательно, len
отрицательно, или off + len
больше чем s.length
.NullPointerException
- если s
null
.EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.void readFully(char[] c, int off, int len) throws IOException
len
случайные работы (16-разрядные целые числа без знака) от потока согласно текущему порядку байтов, и хранят их в c
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
c
- массив случайных работ, которые будут записаны.off
- стартовая позиция withinb, чтобы записать в.len
- максимальное количество char
s, чтобы читать.IndexOutOfBoundsException
- если off
отрицательно, len
отрицательно, или off + len
больше чем c.length
.NullPointerException
- если c
null
.EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.void readFully(int[] i, int off, int len) throws IOException
len
ints (подписал 32-разрядные целые числа) от потока согласно текущему порядку байтов, и хранит их в i
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
i
- массив ints, который будет записан.off
- стартовая позиция withinb, чтобы записать в.len
- максимальное количество int
s, чтобы читать.IndexOutOfBoundsException
- если off
отрицательно, len
отрицательно, или off + len
больше чем i.length
.NullPointerException
- если i
null
.EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.void readFully(long[] l, int off, int len) throws IOException
len
longs (подписал 64-разрядные целые числа) от потока согласно текущему порядку байтов, и хранит их в l
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
l
- массив longs, который будет записан.off
- стартовая позиция withinb, чтобы записать в.len
- максимальное количество long
s, чтобы читать.IndexOutOfBoundsException
- если off
отрицательно, len
отрицательно, или off + len
больше чем l.length
.NullPointerException
- если l
null
.EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.void readFully(float[] f, int off, int len) throws IOException
len
плавания (32-разрядные плавания одинарной точности IEEE) от потока согласно текущему порядку байтов, и хранят их в f
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
f
- массив плаваний, которые будут записаны.off
- стартовая позиция withinb, чтобы записать в.len
- максимальное количество float
s, чтобы читать.IndexOutOfBoundsException
- если off
отрицательно, len
отрицательно, или off + len
больше чем f.length
.NullPointerException
- если f
null
.EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.void readFully(double[] d, int off, int len) throws IOException
len
удваивается (64-разрядные плавания двойной точности IEEE) от потока согласно текущему порядку байтов, и хранит их в d
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
d
- массив удваивается, чтобы быть записанным.off
- стартовая позиция withinb, чтобы записать в.len
- максимальное количество double
s, чтобы читать.IndexOutOfBoundsException
- если off
отрицательно, len
отрицательно, или off + len
больше чем d.length
.NullPointerException
- если d
null
.EOFException
- если поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.long getStreamPosition() throws IOException
IOException
- если ошибка ввода-вывода происходит.int getBitOffset() throws IOException
readBits
метод. Значение 0 указывает на старший значащий бит, и значение 7 указывает на младший значащий бит считанного байта. Разрядное смещение устанавливается в 0, когда поток сначала открывается, и сбрасывается к 0 звонками seek
, skipBytes
, или любой read
или readFully
метод.
int
содержа разрядное смещение между 0 и 7, включительно.IOException
- если ошибка ввода-вывода происходит.setBitOffset(int)
void setBitOffset(int bitOffset) throws IOException
getStreamPosition
, оставляется неизменным. Значение 0 указывает на старший значащий бит, и значение 7 указывает на младший значащий бит считанного байта.bitOffset
- требуемое смещение, как int
между 0 и 7, включительно.IllegalArgumentException
- если bitOffset
не между 0 и 7, включительно.IOException
- если ошибка ввода-вывода происходит.getBitOffset()
int readBit() throws IOException
int
со значением 0
или 1
. Разрядное смещение совершенствуется одним и уменьшало по модулю 8.int
содержа значение 0
или 1
.EOFException
- если поток достигает конца прежде, чем считать все биты.IOException
- если ошибка ввода-вывода происходит.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();" pre> Note that the result ofreadBits(32)
may thus not be equal to that ofreadInt()
if a reverse network byte order is being used (i.e.,getByteOrder() == false
).If the end of the stream is encountered before all the bits have been read, an
EOFException
is thrown.
numBits
- the number of bits to read, as an int
between 0 and 64, inclusive.long
with the last bit
read stored in the least significant bit.IllegalArgumentException
- if numBits
is not between 0 and 64, inclusive.EOFException
- if the stream reaches the end before
reading all the bits.IOException
- if an I/O error occurs.long length() throws IOException
-1
is returned.long
containing the length of the
stream, if known, or else -1
.IOException
- if an I/O error occurs.int skipBytes(int n) throws IOException
skipBytes
in interface DataInput
n
- an int
containing the number of bytes to
be skipped.int
representing the number of bytes skipped.IOException
- if an I/O error occurs.long skipBytes(long n) throws IOException
skipBytes(int)
except
that it allows for a larger skip distance.n
- a long
containing the number of bytes to
be skipped.long
representing the number of bytes
skipped.IOException
- if an I/O error occurs.void seek(long pos) throws IOException
An IndexOutOfBoundsException
will be thrown if
pos
is smaller than the flushed position (as
returned by getflushedPosition
).
It is legal to seek past the end of the file; an
EOFException
will be thrown only if a read is
performed.
pos
- a long
containing the desired file
pointer position.IndexOutOfBoundsException
- if pos
is smaller
than the flushed position.IOException
- if any other I/O error occurs.void mark()
reset
. Unlike a standard
InputStream
, all ImageInputStream
s
support marking. Additionally, calls to mark
and
reset
may be nested arbitrarily.
Unlike the mark
methods declared by the
Reader
and InputStream
interfaces, no
readLimit
parameter is used. An arbitrary amount
of data may be read following the call to mark
.
The bit position used by the readBits
method
is saved and restored by each pair of calls to
mark
and reset
.
Note that it is valid for an ImageReader
to call
flushBefore
as part of a read operation.
Therefore, if an application calls mark
prior to
passing that stream to an ImageReader
, the application
should not assume that the marked position will remain valid after
the read operation has completed.
void reset() throws IOException
mark
.
Calls to reset
without a corresponding call
to mark
have no effect.
An IOException
will be thrown if the previous
marked position lies in the discarded portion of the stream.
IOException
- if an I/O error occurs.void flushBefore(long pos) throws IOException
IndexOutOfBoundsException
.
Calling flushBefore
may allow classes
implementing this interface to free up resources such as memory
or disk space that are being used to store data from the
stream.
pos
- a long
containing the length of the
stream prefix that may be flushed.IndexOutOfBoundsException
- if pos
lies
in the flushed portion of the stream or past the current stream
position.IOException
- if an I/O error occurs.void flush() throws IOException
flushBefore(getStreamPosition())
.IOException
- if an I/O error occurs.long getFlushedPosition()
flushBefore
.long
.boolean isCached()
true
if this ImageInputStream
caches data itself in order to allow seeking backwards.
Applications may consult this in order to decide how frequently,
or whether, to flush in order to conserve cache resources.true
if this ImageInputStream
caches data.isCachedMemory()
,
isCachedFile()
boolean isCachedMemory()
true
if this ImageInputStream
caches data itself in order to allow seeking backwards, and
the cache is kept in main memory. Applications may consult
this in order to decide how frequently, or whether, to flush
in order to conserve cache resources.true
if this ImageInputStream
caches data in main memory.isCached()
,
isCachedFile()
boolean isCachedFile()
true
if this ImageInputStream
caches data itself in order to allow seeking backwards, and
the cache is kept in a temporary file. Applications may consult
this in order to decide how frequently, or whether, to flush
in order to conserve cache resources.true
if this ImageInputStream
caches data in a temporary file.isCached()
,
isCachedMemory()
void close() throws IOException
IOException
s or incorrect
behavior. Calling this method may allow classes implementing
this interface to release resources associated with the stream
such as memory, disk space, or file descriptors.close
in interface AutoCloseable
close
in interface Closeable
IOException
- if an I/O error occurs.
For further API reference and developer documentation, see
Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.