Интерфейс ImageInputStream
- Все суперинтерфейсы:
-
AutoCloseable,Closeable,DataInput
- Все известные подинтерфейсы:
ImageOutputStream
- Все известные реализующие классы:
-
FileCacheImageInputStream,FileCacheImageOutputStream,FileImageInputStream,FileImageOutputStream,ImageInputStreamImpl,ImageOutputStreamImpl,MemoryCacheImageInputStream,MemoryCacheImageOutputStream
public interface ImageInputStream extends DataInput, Closeable
ImageReader. Различные источники ввода, такие как InputStream и File, а также будущие источники быстрого ввода/вывода могут быть "обёрнуты" подходящей реализацией этого интерфейса для использования в API ввода/вывода изображений.- См. также:
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
void |
close() |
Закрывает поток. |
void |
flush() |
Отбрасывает начальную позицию потока до текущей позиции потока. |
void |
flushBefore |
Отбрасывает начальную часть потока до указанной позиции. |
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 |
Читает до b.length байтов из потока и сохраняет их в b начиная с индекса 0. |
int |
read |
Читает до len байтов из потока и сохраняет их в b начиная с индекса off. |
int |
readBit() |
Читает один бит из потока и возвращает его как int со значением 0 или 1. |
long |
readBits |
Читает строку битов из потока и возвращает её как long, где первый прочитанный бит становится старшим битом результата. |
boolean |
readBoolean() |
Читает байт из потока и возвращает значение boolean, если оно ненулевое, false, если нулевое. |
byte |
readByte() |
Читает байт из потока и возвращает его как значение byte. |
void |
readBytes |
Читает до len байтов из потока и изменяет переданный IIOByteBuffer для указания массива байтов, смещения и длины, где данные могут быть найдены. |
char |
readChar() |
Эквивалентно readUnsignedShort, за исключением того, что результат возвращается с помощью типа данных char. |
double |
readDouble() |
Читает 8 байтов из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как double. |
float |
readFloat() |
Читает 4 байта из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как float. |
void |
readFully |
Читает b.length байтов из потока и сохраняет их в b начиная с индекса 0. |
void |
readFully |
Читает len байтов из потока и сохраняет их в b начиная с индекса off. |
void |
readFully |
Читает len символов (целые беззнаковые 16-битные числа) из потока в соответствии с текущим порядком байтов и сохраняет их в c начиная с индекса off. |
void |
readFully |
Читает len чисел с плавающей запятой двойной точности (64-битные числа с плавающей запятой IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в d начиная с индекса off. |
void |
readFully |
Читает len чисел с плавающей запятой одинарной точности (32-битные числа с плавающей запятой IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в f начиная с индекса off. |
void |
readFully |
Читает len целых чисел (32-битные целые числа со знаком) из потока в соответствии с текущим порядком байтов и сохраняет их в i начиная с индекса off. |
void |
readFully |
Читает len длинных целых чисел (64-битные целые числа со знаком) из потока в соответствии с текущим порядком байтов и сохраняет их в l начиная с индекса off. |
void |
readFully |
Читает len коротких целых чисел (16-битные целые числа со знаком) из потока в соответствии с текущим порядком байтов и сохраняет их в s начиная с индекса off. |
int |
readInt() |
Читает 4 байта из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как int. |
String |
readLine() |
Читает следующую строку текста из входного потока. |
long |
readLong() |
Читает 8 байтов из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как long. |
short |
readShort() |
Читает два байта из потока, (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как значение short. |
int |
readUnsignedByte() |
Читает байт из потока, (понятийно) преобразует его в int, маскирует его с помощью 0xff для удаления любых расширяющих знак битов и возвращает результат как значение byte. |
long |
readUnsignedInt() |
Читает 4 байта из потока, (понятийно) конкатенирует их в соответствии с текущим порядком байтов, преобразует результат в long, маскирует его с помощью 0xffffffffL для удаления любых расширяющих знак битов и возвращает результат как беззнаковое значение long. |
int |
readUnsignedShort() |
Читает два байта из потока, (понятийно) конкатенирует их в соответствии с текущим порядком байтов, преобразует полученное значение в int, маскирует его с помощью 0xffff для удаления любых расширяющих знак битов и возвращает результат как беззнаковое значение int. |
String |
readUTF() |
Считывает строку, закодированную в формате изменённого UTF-8. |
void |
reset() |
Возвращает указатель потока в его предыдущее положение, включая битовый смещение, на момент последнего несоответствующего вызова mark. |
void |
seek |
Устанавливает текущую позицию потока в нужное место. |
void |
setBitOffset |
Устанавливает битовый смещение на целое число от 0 до 7 включительно. |
void |
setByteOrder |
Устанавливает желаемый порядок байтов для будущих чтений значений данных из этого потока. |
int |
skipBytes |
Перемещает позицию потока вперед на заданное количество байтов. |
long |
skipBytes |
Перемещает позицию потока вперед на заданное количество байтов. |
Подробное описание методов
setByteOrder
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, указывающих, будет ли использоваться сетевой порядок байтов или его обратный порядок при будущих операциях чтения. - См. также:
getByteOrder
ByteOrder getByteOrder()
java.nio.ByteOrder. - Возвращает:
- одно из значений
ByteOrder.BIG_ENDIANилиByteOrder.LITTLE_ENDIAN, указывающих, какой порядок байтов используется. - См. также:
read
int read() throws IOException
Смещение бита в потоке сбрасывается до нуля перед чтением.
- Возвращает:
- значение байта из потока, как целое число, или -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— максимальное количество байтов для чтения. - Возвращает:
- количество фактически прочитанных байтов или -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— максимальное количество байтов для чтения. - Исключения:
-
IndexOutOfBoundsException— еслиlenотрицательное. -
NullPointerException— еслиbufравноnull. -
IOException— если произошла ошибка ввода-вывода.
readBoolean
boolean readBoolean() throws IOException
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
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— если произошла ошибка ввода-вывода. - См. также:
readUnsignedShort
int readUnsignedShort() throws IOException
0xffff для удаления битов расширения знака и возвращает результат как бесзнаковое значение int. Смещение бита в потоке сбрасывается до нуля перед чтением.
- Определено в:
-
readUnsignedShortв интерфейсеDataInput - Возвращает:
- бесзнаковое значение short из потока, как целое число.
- Исключения:
-
EOFException— если поток достигнет конца до прочтения всех байтов. -
IOException— если произошла ошибка ввода-вывода. - См. также:
readChar
char readChar() throws IOException
readUnsignedShort, за исключением того, что результат возвращается с использованием типа данных char. Смещение бита в потоке сбрасывается до нуля перед чтением.
- Определено в:
-
readCharв интерфейсеDataInput - Возвращает:
- бесзнаковое значение char из потока.
- Исключения:
-
EOFException— если поток достигнет конца до прочтения всех байтов. -
IOException— если произошла ошибка ввода-вывода. - См. также:
readInt
int readInt() throws IOException
int. Смещение бита в потоке игнорируется и обрабатывается так, как будто оно равно нулю.
- Определено в:
-
readIntв интерфейсеDataInput - Возвращает:
- целое значение со знаком из потока.
- Выбрасывает:
-
EOFException- если поток достигает конца до считывания всех байтов. -
IOException- если произошла ошибка ввода-вывода. - См. также:
readUnsignedInt
long readUnsignedInt() throws IOException
0xffffffffL для удаления каких-либо битов расширения знака и возвращает результат в виде значения без знака long. Смещение бита в потоке сбрасывается до нуля перед чтением.
- Возвращает:
- значение без знака int из потока в виде long.
- Выбрасывает:
-
EOFException- если поток достигает конца до считывания всех байтов. -
IOException- если произошла ошибка ввода-вывода. - См. также:
readLong
long readLong() throws IOException
long. Смещение бита в потоке сбрасывается до нуля перед чтением.
- Определено в:
-
readLongв интерфейсеDataInput - Возвращает:
- значение long со знаком из потока.
- Выбрасывает:
-
EOFException- если поток достигает конца до считывания всех байтов. -
IOException- если произошла ошибка ввода-вывода. - См. также:
readFloat
float readFloat() throws IOException
float. Смещение бита в потоке сбрасывается до нуля перед чтением.
- Определено в:
-
readFloatв интерфейсеDataInput - Возвращает:
- значение float из потока.
- Выбрасывает:
-
EOFException- если поток достигает конца до считывания всех байтов. -
IOException- если произошла ошибка ввода-вывода. - См. также:
readDouble
double readDouble() throws IOException
double. Смещение бита в потоке сбрасывается до нуля перед чтением.
- Определено в:
-
readDoubleв интерфейсеDataInput - Возвращает:
- значение double из потока.
- Выбрасывает:
-
EOFException- если поток достигает конца до считывания всех байтов. -
IOException- если произошла ошибка ввода-вывода. - См. также:
readLine
String readLine() throws IOException
String. Обратите внимание, что поскольку этот метод обрабатывает байты, он не поддерживает ввод полного набора символов Юникода. Если конец файла обнаруживается до того, как может быть прочитан хотя бы один байт, то возвращается null. В противном случае каждый прочитанный байт преобразуется в тип char с расширением до нуля. Если встречается символ '\n', он отбрасывается, и чтение прекращается. Если встречается символ '\r', он отбрасывается, и если следующий байт преобразуется в символ '\n', то и он отбрасывается; чтение прекращается. Если конец файла достигается до того, как встречаются какие-либо из символов '\n' и '\r', чтение прекращается. После прекращения чтения возвращается String, содержащий все прочитанные и не отброшенные символы в порядке их чтения. Обратите внимание, что каждое значение символа в этой строке будет меньше \u0100, то есть (char)256.
Смещение бита в потоке сбрасывается до нуля перед чтением.
- Определено в:
-
readLineв интерфейсеDataInput - Возвращает:
- строку, содержащую строку текста из потока.
- Выбрасывает:
-
IOException- если произошла ошибка ввода-вывода.
readUTF
String readUTF() throws IOException
readUTF заключается в том, что он считывает представление строки символов Юникода, закодированной в формате модифицированного 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
readBits. Значение 0 соответствует старшему биту, а значение 7 — младшему биту читаемого байта. Смещение бита устанавливается в 0 при первом открытии потока и сбрасывается до 0 вызовами seek, skipBytes, или любого метода read или readFully.
- Возвращает:
- целое число, содержащее значение смещения бита от 0 до 7 включительно.
- Исключения:
-
IOException- если произошла ошибка ввода-вывода. - См. также:
setBitOffset
void setBitOffset(int bitOffset) throws IOException
getStreamPosition, остается без изменений. Значение 0 соответствует старшему биту, а значение 7 — младшему биту читаемого байта.- Параметры:
-
bitOffset- желаемое смещение, целое число от 0 до 7 включительно. - Исключения:
-
IllegalArgumentException- еслиbitOffsetне находится в диапазоне от 0 до 7 включительно. -
IOException- если произошла ошибка ввода-вывода. - См. также:
readBit
int readBit() throws IOException
0 или 1. Смещение бита увеличивается на единицу и уменьшается по модулю 8.- Возвращает:
- целое число, содержащее значение
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
Будет выброшено исключение 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
boolean isCachedMemory()
true, если этот ImageInputStream кеширует данные для возможности обратного перехода, и кеш хранится в оперативной памяти. Приложения могут использовать это, чтобы решить, как часто или нужно ли сбрасывать кеш для сохранения ресурсов.- Возвращает:
-
trueесли этотImageInputStreamкеширует данные в оперативной памяти. - См. также:
isCachedFile
boolean isCachedFile()
true, если этот ImageInputStream кеширует данные для возможности обратного перехода, и кеш хранится в временном файле. Приложения могут использовать это, чтобы решить, как часто или нужно ли сбрасывать кеш для сохранения ресурсов.- Возвращает:
-
trueесли этотImageInputStreamкеширует данные в временном файле. - См. также:
close
void close() throws IOException
IOException или некорректному поведению. Вызов этого метода может позволить классам, реализующим этот интерфейс, освободить ресурсы, связанные с потоком, такие как память, дисковое пространство или дескрипторы файлов.- Задано:
-
closeв интерфейсеAutoCloseable - Задано:
-
closeв интерфейсеCloseable - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/imageio/stream/ImageInputStream.html