Spec-Zone .ru
спецификации, руководства, описания, API
|
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 void |
checkClosed()
Броски
IOException если поток был закрыт. |
void |
close()
Закрывает поток.
|
protected void |
finalize()
Завершает этот объект до сборки "мусора".
|
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)
Читает строку битов из потока и возвращает это как 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()
Сбрасывает текущий потоковый байт и позиции двоичного разряда от стека отмеченных позиций.
|
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) . |
protected ByteOrder byteOrder
java.nio.ByteOrder
, где ByteOrder.BIG_ENDIAN
указывает на сетевой порядок байтов и ByteOrder.LITTLE_ENDIAN
указывает на обратный порядок. По умолчанию значение ByteOrder.BIG_ENDIAN
.protected long streamPos
protected int bitOffset
protected long flushedPos
flushedPos
всегда будет> = 0.public ImageInputStreamImpl()
ImageInputStreamImpl
.protected final void checkClosed() throws IOException
IOException
если поток был закрыт. Подклассы могут вызвать этот метод от любого из их методов, которые требуют, чтобы поток не был закрыт.IOException
- если поток закрывается.public void setByteOrder(ByteOrder byteOrder)
ImageInputStream
Класс перечисления 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)
public ByteOrder getByteOrder()
ImageInputStream
java.nio.ByteOrder
перечисление.getByteOrder
в интерфейсе ImageInputStream
ByteOrder.BIG_ENDIAN
или ByteOrder.LITTLE_ENDIAN
, указание, какой порядок байтов используется.ByteOrder
, ImageInputStream.setByteOrder(java.nio.ByteOrder)
public abstract int read() throws IOException
int
между 0 и 255. Если EOF достигается, -1
возвращается. Подклассы должны обеспечить реализацию для этого метода. Реализация подкласса должна обновить потоковую позицию перед выходом.
Разрядное смещение в потоке должно быть сброшено, чтобы обнулить прежде, чем чтение произойдет.
read
в интерфейсе ImageInputStream
-1
если EOF достигается.IOException
- если поток был закрыт.public int read(byte[] b) throws IOException
read(b, 0, b.length)
. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
read
в интерфейсе ImageInputStream
b
- массив байтов, которые будут записаны.-1
указать на EOF.NullPointerException
- если b
null
.IOException
- если ошибка ввода-вывода происходит.public abstract int read(byte[] b, int off, int len) throws IOException
len
байты от потока, и хранят их в b
запуск по индексу off
. Если никакие байты не могут быть считаны, потому что конец потока был достигнут, -1
возвращается. Разрядное смещение в потоке должно быть сброшено, чтобы обнулить прежде, чем чтение произойдет.
Подклассы должны обеспечить реализацию для этого метода. Реализация подкласса должна обновить потоковую позицию перед выходом.
read
в интерфейсе ImageInputStream
b
- массив байтов, которые будут записаны.off
- стартовая позиция в пределах b
записать в.len
- максимальное количество байтов, чтобы читать.-1
указать на EOF.IndexOutOfBoundsException
- если off
отрицательно, len
отрицательно, или off + len
больше чем b.length
.NullPointerException
- если b
null
.IOException
- если ошибка ввода-вывода происходит.public void readBytes(IIOByteBuffer buf, int len) throws IOException
ImageInputStream
len
байты от потока, и изменяют предоставленный IIOByteBuffer
чтобы указать на байтовый массив, сместите, и длина, где данные могут быть найдены. Вызывающая сторона не должна попытаться изменить данные, найденные в IIOByteBuffer
. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readBytes
в интерфейсе ImageInputStream
buf
- IIOByteBuffer возражает, чтобы быть измененным.len
- максимальное количество byte
s, чтобы читать.IOException
- если ошибка ввода-вывода происходит.public boolean readBoolean() throws IOException
ImageInputStream
boolean
значение true
если это является ненулевым, false
если это - нуль. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readBoolean
в интерфейсе DataInput
readBoolean
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.public byte readByte() throws IOException
ImageInputStream
byte
значение. Байт оценивает между 0x00
и 0x7f
представьте целочисленные значения между 0
и 127
. Значения между 0x80
и 0xff
представьте отрицательные величины от -128
к /1
. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readByte
в интерфейсе DataInput
readByte
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.public int readUnsignedByte() throws IOException
ImageInputStream
0xff
чтобы снять изоляцию с любых битов расширения знака, и возвратов это как a byte
значение. Таким образом байт оценивает между 0x00
и 0x7f
просто возвращаются как целочисленные значения между 0
и 127
. Значения между 0x80
и 0xff
, которые обычно представляют отрицательный byte
значения, будет отображен в положительные целые числа между 128
и 255
.
Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readUnsignedByte
в интерфейсе DataInput
readUnsignedByte
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.public short readShort() throws IOException
ImageInputStream
short
значение. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readShort
в интерфейсе DataInput
readShort
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.ImageInputStream.getByteOrder()
public int readUnsignedShort() throws IOException
ImageInputStream
int
, маскирует это с 0xffff
чтобы снять изоляцию с любого расширения знака buts, и возвратов результат как без знака int
значение. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readUnsignedShort
в интерфейсе DataInput
readUnsignedShort
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.ImageInputStream.getByteOrder()
public char readChar() throws IOException
ImageInputStream
readUnsignedShort
, за исключением того, что результат возвращается, используя char
тип данных. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readChar
в интерфейсе DataInput
readChar
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.ImageInputStream.readUnsignedShort()
public int readInt() throws IOException
ImageInputStream
int
. Разрядное смещение в потоке игнорируется и обрабатывается, как если бы это был нуль.
readInt
в интерфейсе DataInput
readInt
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.ImageInputStream.getByteOrder()
public long readUnsignedInt() throws IOException
ImageInputStream
0xffffffffL
чтобы снять изоляцию с любых битов расширения знака, и возвратов результат как без знака long
значение. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readUnsignedInt
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.ImageInputStream.getByteOrder()
public long readLong() throws IOException
ImageInputStream
long
. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readLong
в интерфейсе DataInput
readLong
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.ImageInputStream.getByteOrder()
public float readFloat() throws IOException
ImageInputStream
float
. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readFloat
в интерфейсе DataInput
readFloat
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.ImageInputStream.getByteOrder()
public double readDouble() throws IOException
ImageInputStream
double
. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readDouble
в интерфейсе DataInput
readDouble
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.ImageInputStream.getByteOrder()
public String readLine() throws IOException
ImageInputStream
String
. Отметьте, что, потому что этот метод обрабатывает байты, он не поддерживает ввод полного набора символов Unicode. Если с концом файла встречаются прежде, чем даже один байт может быть считан, то null
возвращается. Иначе, каждый байт, который читается, преобразовывается в тип char
дополнением нулями. Если символ '\n'
встречается, это отбрасывается, и чтение прекращается. Если символ '\r'
встречается, это отбрасывается и, если следующий байт преобразовывает в символ '\n'
, тогда это отбрасывается также; чтение тогда прекращается. Если с концом файла встречаются перед любым из символов '\n'
и '\r'
встречается, чтение прекращается. Как только чтение прекратилось, a String
возвращается, который содержит все чтение символов и не отброшенный, взятый в порядке. Отметьте, что у каждого символа в этой строке будет значение меньше чем \u0100
, то есть, (char)256
.
Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readLine
в интерфейсе DataInput
readLine
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.public String readUTF() throws IOException
ImageInputStream
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
readUTF
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.public void readFully(byte[] b, int off, int len) throws IOException
ImageInputStream
len
байты от потока, и хранят их в b
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readFully
в интерфейсе DataInput
readFully
в интерфейсе ImageInputStream
b
- массив байтов, которые будут записаны.off
- стартовая позиция в пределах b
записать в.len
- максимальное количество byte
s, чтобы читать.IOException
- если ошибка ввода-вывода происходит.public void readFully(byte[] b) throws IOException
ImageInputStream
b.length
байты от потока, и хранят их в b
запуск по индексу 0
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readFully
в интерфейсе DataInput
readFully
в интерфейсе ImageInputStream
b
- массив byte
s.IOException
- если ошибка ввода-вывода происходит.public void readFully(short[] s, int off, int len) throws IOException
ImageInputStream
len
шорты (подписал 16-разрядные целые числа) от потока согласно текущему порядку байтов, и хранят их в s
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readFully
в интерфейсе ImageInputStream
s
- массив шорт, которые будут записаны.off
- стартовая позиция withinb, чтобы записать в.len
- максимальное количество short
s, чтобы читать.IOException
- если ошибка ввода-вывода происходит.public void readFully(char[] c, int off, int len) throws IOException
ImageInputStream
len
случайные работы (16-разрядные целые числа без знака) от потока согласно текущему порядку байтов, и хранят их в c
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readFully
в интерфейсе ImageInputStream
c
- массив случайных работ, которые будут записаны.off
- стартовая позиция withinb, чтобы записать в.len
- максимальное количество char
s, чтобы читать.IOException
- если ошибка ввода-вывода происходит.public void readFully(int[] i, int off, int len) throws IOException
ImageInputStream
len
ints (подписал 32-разрядные целые числа) от потока согласно текущему порядку байтов, и хранит их в i
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readFully
в интерфейсе ImageInputStream
i
- массив ints, который будет записан.off
- стартовая позиция withinb, чтобы записать в.len
- максимальное количество int
s, чтобы читать.IOException
- если ошибка ввода-вывода происходит.public void readFully(long[] l, int off, int len) throws IOException
ImageInputStream
len
longs (подписал 64-разрядные целые числа) от потока согласно текущему порядку байтов, и хранит их в l
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readFully
в интерфейсе ImageInputStream
l
- массив longs, который будет записан.off
- стартовая позиция withinb, чтобы записать в.len
- максимальное количество long
s, чтобы читать.IOException
- если ошибка ввода-вывода происходит.public void readFully(float[] f, int off, int len) throws IOException
ImageInputStream
len
плавания (32-разрядные плавания одинарной точности IEEE) от потока согласно текущему порядку байтов, и хранят их в f
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readFully
в интерфейсе ImageInputStream
f
- массив плаваний, которые будут записаны.off
- стартовая позиция withinb, чтобы записать в.len
- максимальное количество float
s, чтобы читать.IOException
- если ошибка ввода-вывода происходит.public void readFully(double[] d, int off, int len) throws IOException
ImageInputStream
len
удваивается (64-разрядные плавания двойной точности IEEE) от потока согласно текущему порядку байтов, и хранит их в d
запуск по индексу off
. Если конец потока достигается, EOFException
будет брошен. Разрядное смещение в потоке сбрасывается, чтобы обнулить прежде, чем чтение произойдет.
readFully
в интерфейсе ImageInputStream
d
- массив удваивается, чтобы быть записанным.off
- стартовая позиция withinb, чтобы записать в.len
- максимальное количество double
s, чтобы читать.IOException
- если ошибка ввода-вывода происходит.public long getStreamPosition() throws IOException
ImageInputStream
getStreamPosition
в интерфейсе ImageInputStream
IOException
- если ошибка ввода-вывода происходит.public int getBitOffset() throws IOException
ImageInputStream
readBits
метод. Значение 0 указывает на старший значащий бит, и значение 7 указывает на младший значащий бит считанного байта. Разрядное смещение устанавливается в 0, когда поток сначала открывается, и сбрасывается к 0 звонками seek
, skipBytes
, или любой read
или readFully
метод.
getBitOffset
в интерфейсе ImageInputStream
int
содержа разрядное смещение между 0 и 7, включительно.IOException
- если ошибка ввода-вывода происходит.ImageInputStream.setBitOffset(int)
public void setBitOffset(int bitOffset) throws IOException
ImageInputStream
getStreamPosition
, оставляется неизменным. Значение 0 указывает на старший значащий бит, и значение 7 указывает на младший значащий бит считанного байта.setBitOffset
в интерфейсе ImageInputStream
bitOffset
- требуемое смещение, как int
между 0 и 7, включительно.IOException
- если ошибка ввода-вывода происходит.ImageInputStream.getBitOffset()
public int readBit() throws IOException
ImageInputStream
int
со значением 0
или 1
. Разрядное смещение совершенствуется одним и уменьшало по модулю 8.readBit
в интерфейсе ImageInputStream
int
содержа значение 0
или 1
.IOException
- если ошибка ввода-вывода происходит.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();" 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.
readBits
in interface ImageInputStream
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.IOException
- if an I/O error occurs.public long length()
-1L
to indicate that the stream has unknown
length. Subclasses must override this method to provide actual
length information.length
in interface ImageInputStream
public int skipBytes(int n) throws IOException
seek(getStreamPosition() + n)
.
The bit offset is reset to zero.
skipBytes
in interface DataInput
skipBytes
in interface ImageInputStream
n
- the number of bytes to seek forward.int
representing the number of bytes
skipped.IOException
- if getStreamPosition
throws an IOException
when computing either
the starting or ending position.public long skipBytes(long n) throws IOException
seek(getStreamPosition() + n)
.
The bit offset is reset to zero.
skipBytes
in interface ImageInputStream
n
- the number of bytes to seek forward.long
representing the number of bytes
skipped.IOException
- if getStreamPosition
throws an IOException
when computing either
the starting or ending position.public void seek(long pos) throws IOException
ImageInputStream
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.
seek
in interface ImageInputStream
pos
- a long
containing the desired file
pointer position.IOException
- if any other I/O error occurs.public void mark()
mark
in interface ImageInputStream
public void reset() throws IOException
An IOException
will be thrown if the previous
marked position lies in the discarded portion of the stream.
reset
in interface ImageInputStream
IOException
- if an I/O error occurs.public void flushBefore(long pos) throws IOException
ImageInputStream
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.
flushBefore
in interface ImageInputStream
pos
- a long
containing the length of the
stream prefix that may be flushed.IOException
- if an I/O error occurs.public void flush() throws IOException
ImageInputStream
flushBefore(getStreamPosition())
.flush
in interface ImageInputStream
IOException
- if an I/O error occurs.public long getFlushedPosition()
ImageInputStream
flushBefore
.getFlushedPosition
in interface ImageInputStream
long
.public boolean isCached()
isCached
in interface ImageInputStream
true
if this ImageInputStream
caches data.ImageInputStream.isCachedMemory()
,
ImageInputStream.isCachedFile()
public boolean isCachedMemory()
isCachedMemory
in interface ImageInputStream
true
if this ImageInputStream
caches data in main memory.ImageInputStream.isCached()
,
ImageInputStream.isCachedFile()
public boolean isCachedFile()
isCachedFile
in interface ImageInputStream
true
if this ImageInputStream
caches data in a temporary file.ImageInputStream.isCached()
,
ImageInputStream.isCachedMemory()
public void close() throws IOException
ImageInputStream
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 Closeable
close
in interface AutoCloseable
close
in interface ImageInputStream
IOException
- if an I/O error occurs.protected void finalize() throws Throwable
close
method is called to close any open input
source. This method should not be called from application
code.
For further API reference and developer documentation, see
Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.