Интерфейс 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 указывает так называемый порядок байтов 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
Смещение бита в потоке сбрасывается в ноль перед чтением.
- Возвращает:
- значение байта из потока, как int, или -1 для обозначения EOF.
- Исключения:
-
IOException- если возникает ошибка ввода-вывода.
read
int read(byte[] b) throws IOException
b.length байтов из потока и сохраняет их в b начиная с индекса 0. Возвращается количество прочитанных байтов. Если невозможно прочитать байты, потому что достигнут конец потока, возвращается -1. Смещение бита в потоке сбрасывается в ноль перед чтением.
- Параметры:
-
b- массив байтов, в который нужно записать. - Возвращает:
- количество фактически прочитанных байтов или
-1для обозначения EOF. - Исключения:
-
NullPointerException- еслиbявляетсяnull. -
IOException- если возникает ошибка ввода-вывода.
read
int read(byte[] b, int off, int len) throws IOException
len байтов из потока и сохраняет их в b начиная с индекса off. Возвращается количество прочитанных байтов. Если невозможно прочитать байты, потому что достигнут конец потока, возвращается -1. Смещение бита в потоке сбрасывается в ноль перед чтением.
- Параметры:
-
b- массив байтов, в который нужно записать. -
off- начальная позиция вb, в которую нужно записать. -
len- максимальное количествоbyte, которые нужно прочитать. - Возвращает:
- количество фактически прочитанных байтов или
-1для обозначения EOF. - Исключения:
-
NullPointerException- еслиbявляетсяnull. -
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольше, чемb.length. -
IOException- если возникает ошибка ввода-вывода.
readBytes
void readBytes(IIOByteBuffer buf, int len) throws IOException
len байтов из потока и изменяет предоставленный IIOByteBuffer, чтобы указать массив байтов, смещение и длину, где можно найти данные. Вызывающий код не должен пытаться изменить данные, найденные в IIOByteBuffer. Смещение бита в потоке сбрасывается в ноль перед чтением.
- Параметры:
-
buf- объект IIOByteBuffer, который нужно изменить. -
len- максимальное количествоbyte, которые нужно прочитать. - Исключения:
-
IndexOutOfBoundsException- еслиlenотрицательно. -
NullPointerException- еслиbufявляетсяnull. -
IOException- если возникает ошибка ввода-вывода.
readBoolean
boolean readBoolean() throws IOException
boolean равное true, если он не равен нулю, false, если он равен нулю. Смещение бита в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readBooleanв интерфейсеDataInput - Возвращает:
- булево значение из потока.
- Исключения:
-
EOFException- если достигнут конец потока. -
IOException- если возникает ошибка ввода-вывода.
readByte
byte readByte() throws IOException
byte. Значения байтов между 0x00 и 0x7f представляют целые значения между 0 и 127. Значения между 0x80 и 0xff представляют отрицательные значения от -128 до /1. Смещение бита в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readByteв интерфейсеDataInput - Возвращает:
- знаковое значение байта из потока.
- Исключения:
-
EOFException- если достигнут конец потока. -
IOException- если возникает ошибка ввода-вывода.
readUnsignedByte
int readUnsignedByte() throws IOException
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
int, маскирует его с помощью 0xffff, чтобы удалить любые биты знакового расширения, и возвращает результат как беззнаковое значение int. Смещение бита в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readUnsignedShortв интерфейсеDataInput - Возвращает:
- беззнаковое значение short из потока, как int.
- Исключения:
-
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 значение. Смещение бита в потоке сбрасывается до нуля перед чтением.
- Возвращает:
- беззнаковое целое значение из потока как long.
- Выбрасывает:
-
EOFException- если поток достигает конца до считывания всех байтов. -
IOException- если произошла ошибка ввода-вывода. - См. также:
readLong
long readLong() throws IOException
long. Смещение бита в потоке сбрасывается до нуля перед чтением.
- Указано в:
-
readLongв интерфейсеDataInput - Возвращает:
- знаковое длинное значение из потока.
- Выбрасывает:
-
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
- Возвращает:
- a long содержащий позицию потока.
- Исключения:
-
IOException- если произошла ошибка ввода-вывода.
getBitOffset
int getBitOffset() throws IOException
readBits. Значение 0 указывает на старший бит, а значение 7 указывает на младший бит считываемого байта. Битовое смещение устанавливается в 0 при первом открытии потока и сбрасывается в 0 вызовами seek, skipBytes, или любым методом read или readFully.
- Возвращает:
- a содержащий битовое смещение от 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.- Возвращает:
- a содержащий значение
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.
- Parameters:
-
numBits- количество битов для чтения, целое число от 0 до 64 включительно. - Returns:
- битовая строка, как
long, где последний считанный бит хранится в младшем бите. - Throws:
-
IllegalArgumentException- еслиnumBitsне находится в диапазоне от 0 до 64 включительно. -
EOFException- если поток достигает конца до чтения всех битов. -
IOException- если произошла ошибка ввода-вывода.
length
long length() throws IOException
-1.- Returns:
- a
longсодержащий длину потока, если она известна, в противном случае-1. - Throws:
-
IOException- если произошла ошибка ввода-вывода.
skipBytes
int skipBytes(int n) throws IOException
- Specified by:
-
skipBytesв интерфейсеDataInput - Parameters:
-
n- целое число, содержащее количество байтов для пропуска. - Returns:
- целое число, представляющее количество пропущенных байтов.
- Throws:
-
IOException- если произошла ошибка ввода-вывода.
skipBytes
long skipBytes(long n) throws IOException
skipBytes(int) за исключением возможности большего расстояния пропуска.- Parameters:
-
n- alongсодержащее количество байтов для пропуска. - Returns:
- a
longпредставляющее количество пропущенных байтов. - Throws:
-
IOException- если произошла ошибка ввода-вывода.
seek
void seek(long pos) throws IOException
IndexOutOfBoundsException будет выброшен, если pos меньше очищенной позиции (как возвращается getflushedPosition).
Законно переместиться за конец файла; java.io.EOFException будет выброшен только если будет выполнено чтение.
- Parameters:
-
pos- alongсодержащее желаемую позицию указателя файла. - Throws:
-
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 будет выброшен, если предыдущая помеченная позиция находится в отброшенной части потока.
- Throws:
-
IOException- если произошла ошибка ввода-вывода.
flushBefore
void flushBefore(long pos) throws IOException
IndexOutOfBoundsException. Вызов flushBefore может позволить классам, реализующим этот интерфейс, освободить ресурсы, такие как память или место на диске, которые используются для хранения данных из потока.
- Parameters:
-
pos- целое число, содержащее длину префикса потока, который можно очистить. - Throws:
-
pos- еслиposнаходится в очищенной части потока или за текущей позицией потока. -
IOException- если произошла ошибка ввода-вывода.
flush
void flush() throws IOException
flushBefore(getStreamPosition()).- Throws:
-
IOException- если произошла ошибка ввода-вывода.
getFlushedPosition
long getFlushedPosition()
flushBefore.- Returns:
- самая ранняя допустимая позиция для перехода, как целое число.
isCached
boolean isCached()
true, если этот ImageInputStream кэширует данные для возможности обратного перехода. Приложения могут проконсультироваться с этим, чтобы решить, как часто или нужно ли сбрасывать кэш, чтобы сохранить ресурсы кэша.- Returns:
-
trueесли этотImageInputStreamкэширует данные. - See Also:
isCachedMemory
boolean isCachedMemory()
true, если этот ImageInputStream кэширует данные для возможности обратного перехода, и кэш хранится в оперативной памяти. Приложения могут проконсультироваться с этим, чтобы решить, как часто или нужно ли сбрасывать кэш, чтобы сохранить ресурсы кэша.- Returns:
-
trueесли этотImageInputStreamкэширует данные в оперативной памяти. - See Also:
isCachedFile
boolean isCachedFile()
true, если этот ImageInputStream кэширует данные для возможности обратного перехода, и кэш хранится во временном файле. Приложения могут проконсультироваться с этим, чтобы решить, как часто или нужно ли сбрасывать кэш, чтобы сохранить ресурсы кэша.- Returns:
-
trueесли этотImageInputStreamкэширует данные во временном файле. - See Also:
close
void close() throws IOException
IOException или некорректной работе. Вызов этого метода может позволить классам, реализующим этот интерфейс, освободить ресурсы, связанные с потоком, такие как память, место на диске или дескрипторы файлов.- Specified by:
-
closeв интерфейсеAutoCloseable - Specified by:
-
closeв интерфейсеCloseable - Throws:
-
IOException- если произошла ошибка ввода-вывода.
© 1993, 2021, 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/17/docs/api/java.desktop/javax/imageio/stream/ImageInputStream.html