Интерфейс ImageInputStream
- Все суперинтерфейсы:
AutoCloseable, Closeable, DataInput
- Все известные подинтерфейсы:
ImageOutputStream
- Все известные реализующие классы:
FileCacheImageInputStream, FileCacheImageOutputStream, FileImageInputStream, FileImageOutputStream, ImageInputStreamImpl, ImageOutputStreamImpl, MemoryCacheImageInputStream, MemoryCacheImageOutputStream
public interface ImageInputStream extends DataInput, Closeable
ImageReader. Различные источники ввода, такие как InputStream и File, а также будущие высокоскоростные источники ввода-вывода могут быть «обёрнуты» подходящей реализацией этого интерфейса для использования API ввода-вывода изображений.- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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: true, если байт ненулевой, или 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 значений double (64-разрядных чисел с плавающей запятой двойной точности IEEE) в соответствии с текущим порядком байтов и помещает их в d, начиная с индекса off. |
void |
readFully |
Считывает из потока len значений float (32-разрядных чисел с плавающей запятой одинарной точности IEEE) в соответствии с текущим порядком байтов и помещает их в f, начиная с индекса off. |
void |
readFully |
Считывает из потока len значений int (знаковых 32-разрядных целых чисел) в соответствии с текущим порядком байтов и помещает их в i, начиная с индекса off. |
void |
readFully |
Считывает из потока len значений long (знаковых 64-разрядных целых чисел) в соответствии с текущим порядком байтов и помещает их в l, начиная с индекса off. |
void |
readFully |
Считывает из потока len значений short (знаковых 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
Перед чтением битовое смещение в потоке сбрасывается в ноль.
- Возвращает:
- значение байта из потока в виде 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 - Возвращает:
- значение int со знаком из потока.
- Выбрасывает:
-
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. Поскольку этот метод обрабатывает байты, он не поддерживает ввод полного набора символов Unicode. Если конец файла встречается до чтения хотя бы одного байта, возвращается null. В противном случае каждый прочитанный байт преобразуется в тип char путем расширения нулями. Если встречается символ '\n', он отбрасывается и чтение прекращается. Если встречается символ '\r', он отбрасывается; если следующий байт преобразуется в символ '\n', он также отбрасывается, после чего чтение прекращается. Если конец файла встречается до появления одного из символов '\n' и '\r', чтение прекращается. После завершения чтения возвращается String, содержащая все прочитанные и не отброшенные символы в исходном порядке. Обратите внимание, что значение каждого символа в этой строке меньше \u0100, то есть (char)256.
Перед чтением битовое смещение в потоке сбрасывается в ноль.
- Определен в:
-
readLineв интерфейсеDataInput - Возвращает:
- строку String, содержащую строку текста из потока.
- Выбрасывает:
-
IOException— при возникновении ошибки ввода-вывода.
readUTF
String readUTF() throws IOException
readUTF: он считывает представление строки символов Unicode, закодированной в формате модифицированного 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 - Возвращает:
- строку String, прочитанную из потока.
- Выбрасывает:
-
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 значений short (знаковых 16-битных целых чисел) в соответствии с текущим порядком байтов и сохраняет их в s, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Перед чтением битовое смещение в потоке сбрасывается в ноль.
- Параметры:
-
s— массив значений short, в который будут записаны данные. -
off— начальная позиция вs, начиная с которой будут записываться данные. -
len— максимальное количество значений short (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 значений char (беззнаковых 16-битных целых чисел) в соответствии с текущим порядком байтов и сохраняет их в c, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Перед чтением битовое смещение в потоке сбрасывается в ноль.
- Параметры:
-
c— массив значений char, в который будут записаны данные. -
off— начальная позиция вc, начиная с которой будут записываться данные. -
len— максимальное количество значений char (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 значений int (знаковых 32-битных целых чисел) в соответствии с текущим порядком байтов и сохраняет их в i, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Перед чтением битовое смещение в потоке сбрасывается в ноль.
- Параметры:
-
i— массив значений int, в который будут записаны данные. -
off— начальная позиция вi, начиная с которой будут записываться данные. -
len— максимальное количество значений int (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 значений long (знаковых 64-битных целых чисел) в соответствии с текущим порядком байтов и сохраняет их в l, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Перед чтением битовое смещение в потоке сбрасывается в ноль.
- Параметры:
-
l— массив значений long, в который будут записаны данные. -
off— начальная позиция вl, начиная с которой будут записываться данные. -
len— максимальное количество значений long (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 значений float (32-битных чисел с плавающей точкой одинарной точности IEEE) в соответствии с текущим порядком байтов и сохраняет их в f, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Перед чтением битовое смещение в потоке сбрасывается в ноль.
- Параметры:
-
f— массив значений float, в который будут записаны данные. -
off— начальная позиция вf, начиная с которой будут записываться данные. -
len— максимальное количество значений float (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 значения типа double (64-разрядные числа с плавающей точкой двойной точности по стандарту IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в d, начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException. Перед чтением битовое смещение в потоке сбрасывается в ноль.
- Параметры:
-
d— массив значений типа double, в который производится запись. -
off— начальная позиция для записи вd. -
len— максимальное количество значений типаdoubleдля чтения. - Исключения:
-
IndexOutOfBoundsException— еслиoffотрицательно,lenотрицательно илиoff + lenбольше, чемd.length. -
NullPointerException— еслиdравноnull. -
EOFException— если достигнут конец потока до чтения всех байтов. -
IOException— если произошла ошибка ввода-вывода.
getStreamPosition
long getStreamPosition() throws IOException
- Возвращает:
- значение типа long, содержащее позицию потока.
- Исключения:
-
IOException— если произошла ошибка ввода-вывода.
getBitOffset
int getBitOffset() throws IOException
readBits. Значение 0 соответствует старшему биту, а значение 7 — младшему биту считываемого байта. При первом открытии потока битовое смещение устанавливается в 0 и сбрасывается в 0 при вызовах seek, skipBytes или любого метода read либо readFully.
- Возвращает:
- значение типа
int, содержащее битовое смещение от 0 до 7 включительно. - Исключения:
-
IOException— если произошла ошибка ввода-вывода. - См. также:
setBitOffset
void setBitOffset(int bitOffset) throws IOException
getStreamPosition, остаётся неизменным. Значение 0 соответствует старшему биту, а значение 7 — младшему биту считываемого байта.- Параметры:
-
bitOffset— требуемое смещение в виде значения типаintот 0 до 7 включительно. - Исключения:
-
IllegalArgumentException— еслиbitOffsetне находится в диапазоне от 0 до 7 включительно. -
IOException— если произошла ошибка ввода-вывода. - См. также:
readBit
int readBit() throws IOException
int со значением 0 или 1. Битовое смещение увеличивается на единицу по модулю 8.- Возвращает:
- значение типа
intсо значением0или1. - Исключения:
-
EOFException— если достигнут конец потока до чтения всех битов. -
IOException— если произошла ошибка ввода-вывода.
readBits
long readBits(int numBits) throws IOException
long, причём первый считанный бит становится старшим битом результата. Чтение начинается в байте, указанном в getStreamPosition, с бита, заданного в getBitOffset. Битовое смещение увеличивается на numBits по модулю 8. Порядок байтов потока не влияет на этот метод. Возвращаемое значение этого метода формируется так, как если бы биты считывались по одному и сдвигались в правую часть возвращаемого значения, как показано в следующем псевдокоде:
long accum = 0L;
for (int i = 0; i < numBits; i++) {
accum <<= 1; // Shift left one bit to make room
accum |= readBit();
}
Обратите внимание, что результат readBits(32) может отличаться от результата readInt() при использовании обратного сетевого порядка байтов (то есть getByteOrder() == false). Если конец потока достигнут до считывания всех битов, выбрасывается исключение java.io.EOFException.
- Параметры:
-
numBits— количество битов для чтения в виде значения типаintот 0 до 64 включительно. - Возвращает:
- битовую строку в виде значения типа
long, в котором последний считанный бит хранится в младшем бите. - Исключения:
-
IllegalArgumentException— еслиnumBitsне находится в диапазоне от 0 до 64 включительно. -
EOFException— если достигнут конец потока до чтения всех битов. -
IOException— если произошла ошибка ввода-вывода.
length
long length() throws IOException
-1.- Возвращает:
- значение типа
long, содержащее длину потока, если она известна, или-1в противном случае. - Исключения:
-
IOException— если произошла ошибка ввода-вывода.
skipBytes
int skipBytes(int n) throws IOException
- Определено в:
-
skipBytesв интерфейсеDataInput - Параметры:
-
n— значение типаint, содержащее количество байтов для пропуска. - Возвращает:
- значение типа
int, представляющее количество пропущенных байтов. - Исключения:
-
IOException— если произошла ошибка ввода-вывода.
skipBytes
long skipBytes(long n) throws IOException
skipBytes(int), за исключением того, что допускает большее расстояние пропуска.- Параметры:
-
n— значение типаlong, содержащее количество байтов для пропуска. - Возвращает:
- значение типа
long, представляющее количество пропущенных байтов. - Исключения:
-
IOException— если произошла ошибка ввода-вывода.
seek
void seek(long pos) throws IOException
Будет выброшено исключение 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, 2025, 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/25/docs/api/java.desktop/javax/imageio/stream/ImageInputStream.html