Класс ImageInputStreamImpl
- java.lang.Object
-
- javax.imageio.stream.ImageInputStreamImpl
- Все реализованные интерфейсы:
- Closeable, DataInput, AutoCloseable, ImageInputStream
- Прямые известные подклассы:
- FileCacheImageInputStream, FileImageInputStream, ImageOutputStreamImpl, MemoryCacheImageInputStream
public abstract class ImageInputStreamImpl extends Object implements ImageInputStream
Абстрактный класс, реализующий интерфейс ImageInputStream. Этот класс разработан для сокращения количества методов, которые должны быть реализованы подклассами.
В частности, этот класс обрабатывает большинство или все детали интерпретации порядка байтов, буферизации, отметки/восстановления, удаления, закрытия и удаления.
Поля
| Модификатор и тип | Поле и описание |
|---|---|
protected int |
bitOffset Текущий битовый смещение в потоке. |
protected ByteOrder |
byteOrder Порядок байтов потока как экземпляр перечисления |
protected long |
flushedPos Позиция перед которой данные могут быть удалены. |
protected long |
streamPos Текущая позиция чтения в потоке. |
Конструкторы
| Конструктор и описание |
|---|
ImageInputStreamImpl() Создаёт |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
protected void |
checkClosed() Выбрасывает |
void |
close() Закрывает поток. |
protected void |
finalize() Инициализирует этот объект перед сбором мусора. |
void |
flush() Очищает начальную позицию потока до текущей позиции потока. |
void |
flushBefore(long pos) Очищает начальную часть потока до указанной позиции. |
int |
getBitOffset() Возвращает текущий битовый смещение, целое число от 0 до 7 включительно. |
ByteOrder |
getByteOrder() Возвращает порядок байтов, с которым значения данных будут читаться из этого потока, как экземпляр перечисления |
long |
getFlushedPosition() Возвращает самую раннюю позицию в потоке, до которой может быть выполнено позиционирование. |
long |
getStreamPosition() Возвращает текущую байтовую позицию потока. |
boolean |
isCached() Стандартная реализация возвращает false. |
boolean |
isCachedFile() Стандартная реализация возвращает false. |
boolean |
isCachedMemory() Стандартная реализация возвращает false. |
long |
length() Возвращает |
void |
mark() Помещает текущую позицию потока в стек помеченных позиций. |
abstract int |
read() Считывает один байт из потока и возвращает его как целое число |
int |
read(byte[] b) Удобный метод, вызывающий |
abstract int |
read(byte[] b,
int off,
int len) Считывает до |
int |
readBit() Считывает один бит из потока и возвращает его как целое число |
long |
readBits(int numBits) Считывает строку битов из потока и возвращает её как |
boolean |
readBoolean() Считывает байт из потока и возвращает значение |
byte |
readByte() Считывает байт из потока и возвращает его как значение |
void |
readBytes(IIOByteBuffer buf,
int len) Считывает до |
char |
readChar() Эквивалентно |
double |
readDouble() Считывает 8 байтов из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как |
float |
readFloat() Считывает 4 байта из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как |
void |
readFully(byte[] b) Считывает |
void |
readFully(byte[] b,
int off,
int len) Считывает |
void |
readFully(char[] c,
int off,
int len) Считывает |
void |
readFully(double[] d,
int off,
int len) Считывает |
void |
readFully(float[] f,
int off,
int len) Считывает |
void |
readFully(int[] i,
int off,
int len) Считывает |
void |
readFully(long[] l,
int off,
int len) Считывает |
void |
readFully(short[] s,
int off,
int len) Считывает |
int |
readInt() Считывает 4 байта из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как |
String |
readLine() Считывает следующую строку текста из входного потока. |
long |
readLong() Считывает 8 байтов из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как |
short |
readShort() Считывает два байта из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов, и возвращает результат как значение |
int |
readUnsignedByte() Считывает байт из потока, (понятийно) преобразует его в целое число, маскирует его с помощью |
long |
readUnsignedInt() Считывает 4 байта из потока, (понятийно) конкатенирует их в соответствии с текущим порядком байтов, преобразует результат в long, маскирует его с помощью |
int |
readUnsignedShort() Считывает два байта из потока, (понятийно) конкатенирует их в соответствии с текущим порядком байтов, преобразует полученное значение в |
String |
readUTF() Считывает строку, закодированную в формате изменённого UTF-8. |
void |
reset() Сбрасывает текущую позицию байта и бита потока из стека помеченных позиций. |
void |
seek(long pos) Устанавливает текущую позицию потока в нужное место. |
void |
setBitOffset(int bitOffset) Устанавливает битовый смещение на целое число от 0 до 7 включительно. |
void |
setByteOrder(ByteOrder byteOrder) Устанавливает желаемый порядок байтов для последующего чтения значений данных из этого потока. |
int |
skipBytes(int n) Перемещает текущую позицию потока, вызывая |
long |
skipBytes(long n) Перемещает текущую позицию потока, вызывая |
Методы, унаследованные от класса java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
byteOrder
protected ByteOrder byteOrder
Порядок байтов потока как экземпляр перечисления java.nio.ByteOrder, где ByteOrder.BIG_ENDIAN обозначает сетевой порядок байтов, а ByteOrder.LITTLE_ENDIAN обозначает обратный порядок. По умолчанию значение равно ByteOrder.BIG_ENDIAN.
streamPos
protected long streamPos
Текущая позиция чтения в потоке. Подклассы отвечают за сохранение этого значения актуальным из любых переопределённых методов, изменяющих позицию чтения.
bitOffset
protected int bitOffset
Текущее битовое смещение в потоке. Подклассы отвечают за сохранение этого значения актуальным из любых переопределённых методов, изменяющих битовое смещение.
flushedPos
protected long flushedPos
Позиция, до которой данные могут быть удалены. Перемещение к меньшей позиции не разрешено. flushedPos всегда будет >= 0.
Конструкторы
ImageInputStreamImpl
public ImageInputStreamImpl()
Создаёт ImageInputStreamImpl.
Методы
checkClosed
protected final void checkClosed()
throws IOException Выбрасывает IOException если поток был закрыт. Подклассы могут вызывать этот метод из любого своего метода, требующего, чтобы поток не был закрыт.
- Выбрасывает:
-
IOException- если поток закрыт.
setByteOrder
public void setByteOrder(ByteOrder byteOrder)
Описание скопировано из интерфейса: ImageInputStream
Устанавливает желаемый порядок байтов для последующего чтения значений данных из этого потока. Например, последовательность байтов '0x01 0x02 0x03 0x04', если читать как 4-байтовое целое число, будет иметь значение '0x01020304' при сетевом порядке байтов и значение '0x04030201' при обратном порядке байтов.
Для указания порядка байтов используется перечисление java.nio.ByteOrder. Значение ByteOrder.BIG_ENDIAN задаёт так называемый порядок байтов "big-endian" или сетевой порядок, в котором старший байт идёт первым. Процессоры Motorola и Sparc хранят данные в этом формате, а процессоры Intel — в обратном порядке ByteOrder.LITTLE_ENDIAN.
Порядок байтов не влияет на результаты, возвращаемые методом readBits (или значение, записанное методом ImageOutputStream.writeBits).
- Определено в:
-
setByteOrderв интерфейсеImageInputStream - Параметры:
-
byteOrder- одно изByteOrder.BIG_ENDIANилиjava.nio.ByteOrder.LITTLE_ENDIAN, указывающее, будет ли использоваться сетевой порядок байтов или его обратный при последующем чтении. - См. также:
-
ByteOrder,ImageInputStream.getByteOrder(),ImageInputStream.readBits(int)
getByteOrder
public ByteOrder getByteOrder()
Описание скопировано из интерфейса: ImageInputStream
Возвращает порядок байтов, с которым будут читаться значения данных из этого потока, как экземпляр перечисления java.nio.ByteOrder.
- Определено в:
-
getByteOrderв интерфейсеImageInputStream - Возвращает:
- одно из
ByteOrder.BIG_ENDIANилиByteOrder.LITTLE_ENDIAN, указывающее используемый порядок байтов. - См. также:
-
ByteOrder,ImageInputStream.setByteOrder(java.nio.ByteOrder)
read
public abstract int read()
throws IOException Читает один байт из потока и возвращает его как значение int от 0 до 255. Если достигнут конец потока (EOF), возвращается -1.
Подклассы должны предоставить реализацию для этого метода. Реализация подкласса должна обновить позицию потока перед завершением.
Битовое смещение в потоке должно быть сброшено в ноль перед чтением.
- Определено в:
-
readв интерфейсеImageInputStream - Возвращает:
- значение следующего байта в потоке или
-1при достижении EOF. - Выбрасывает:
-
IOException- если поток закрыт.
read
public int read(byte[] b)
throws IOException Удобный метод, вызывающий read(b, 0, b.length).
Битовое смещение в потоке сбрасывается в ноль перед чтением.
- Определено в:
-
readв интерфейсеImageInputStream - Параметры:
-
b- массив байтов, которые должны быть записаны. - Возвращает:
- количество фактически прочитанных байтов или
-1для обозначения EOF. - Выбрасывает:
-
NullPointerException- еслиbравноnull. -
IOException- если произошла ошибка ввода-вывода.
read
public abstract int read(byte[] b,
int off,
int len)
throws IOException Читает до len байтов из потока и сохраняет их в b начиная с индекса off. Если байты не могут быть прочитаны из-за достижения конца потока, возвращается -1.
Битовое смещение в потоке должно быть сброшено в ноль перед чтением.
Подклассы должны предоставить реализацию для этого метода. Реализация подкласса должна обновить позицию потока перед завершением.
- Определено в:
-
readв интерфейсеImageInputStream - Параметры:
-
b- массив байтов, которые должны быть записаны. -
off- начальная позиция вbдля записи. -
len- максимальное количество байтов для чтения. - Возвращает:
- количество фактически прочитанных байтов или
-1для обозначения EOF. - Выбрасывает:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольшеb.length. -
NullPointerException- еслиbравноnull. -
IOException- если произошла ошибка ввода-вывода.
readBytes
public void readBytes(IIOByteBuffer buf,
int len)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Читает до len байтов из потока и изменяет предоставленный IIOByteBuffer для указания массива байтов, смещения и длины, где могут быть найдены данные. Вызывающая сторона не должна пытаться изменять данные, найденные в IIOByteBuffer.
Битовое смещение в потоке сбрасывается в ноль перед чтением.
- Определено в:
-
readBytesв интерфейсеImageInputStream - Параметры:
-
buf- объект IIOByteBuffer, который должен быть изменён. -
len- максимальное количествоbyteдля чтения. - Выбрасывает:
-
IOException- если произошла ошибка ввода-вывода.
readBoolean
public boolean readBoolean()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Читает байт из потока и возвращает значение boolean равное true если он ненулевой, false если он нулевой.
Битовое смещение в потоке сбрасывается в ноль перед чтением.
- Определено в:
-
readBooleanв интерфейсеDataInput - Определено в:
-
readBooleanв интерфейсеImageInputStream - Возвращает:
- логическое значение из потока.
- Выбрасывает:
-
EOFException- если достигнут конец потока. -
IOException- если произошла ошибка ввода-вывода.
readByte
public byte readByte()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Читает байт из потока и возвращает его как значение byte. Значения байтов между 0x00 и 0x7f представляют целочисленные значения между 0 и 127. Значения между 0x80 и 0xff представляют отрицательные значения от -128 до /1.
Битовое смещение в потоке сбрасывается в ноль перед чтением.
- Определено в:
-
readByteв интерфейсеDataInput - Определено в:
-
readByteв интерфейсеImageInputStream - Возвращает:
- знаковое значение байта из потока.
- Выбрасывает:
-
EOFException- если достигнут конец потока. -
IOException- если произошла ошибка ввода-вывода.
readUnsignedByte
public int readUnsignedByte()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Читает байт из потока и (понятие) преобразует его в int, маскирует его с 0xff для удаления любых битов расширения знака и возвращает его как значение byte.
Таким образом, значения байтов между 0x00 и 0x7f просто возвращаются как целочисленные значения между 0 и 127. Значения между 0x80 и 0xff, которые обычно представляют отрицательные byteзначения, будут отображены в положительные целые числа между 128 и 255.
Битовое смещение в потоке сбрасывается в ноль перед чтением.
- Определено в:
-
readUnsignedByteв интерфейсеDataInput - Определено в:
-
readUnsignedByteв интерфейсеImageInputStream - Возвращает:
- бесзнаковое значение байта из потока.
- Выбрасывает:
-
EOFException- если достигнут конец потока. -
IOException- если произошла ошибка ввода-вывода.
readShort
public short readShort()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Читает два байта из потока и (понятие) соединяет их в соответствии с текущим порядком байтов и возвращает результат как значение short.
Битовое смещение в потоке сбрасывается в ноль перед чтением.
- Определено:
-
readShortв интерфейсеDataInput - Определено:
-
readShortв интерфейсеImageInputStream - Возвращает:
- знаковое короткое целое значение из потока.
- Исключения:
-
EOFException- если поток достиг конца, прежде чем были прочитаны все байты. -
IOException- если произошла ошибка ввода-вывода. - См. также:
ImageInputStream.getByteOrder()
readUnsignedShort
public int readUnsignedShort()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает два байта из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов, преобразует полученное значение в int, маскирует его с помощью 0xffff для удаления битов расширения знака и возвращает результат как беззнаковое int значение.
Смещение бита в потоке сбрасывается до нуля перед чтением.
- Определено:
-
readUnsignedShortв интерфейсеDataInput - Определено:
-
readUnsignedShortв интерфейсеImageInputStream - Возвращает:
- беззнаковое короткое целое значение из потока, как целое.
- Исключения:
-
EOFException- если поток достиг конца, прежде чем были прочитаны все байты. -
IOException- если произошла ошибка ввода-вывода. - См. также:
ImageInputStream.getByteOrder()
readChar
public char readChar()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Эквивалентно readUnsignedShort, за исключением того, что результат возвращается с использованием типа данных char.
Смещение бита в потоке сбрасывается до нуля перед чтением.
- Определено:
-
readCharв интерфейсеDataInput - Определено:
-
readCharв интерфейсеImageInputStream - Возвращает:
- беззнаковое значение char из потока.
- Исключения:
-
EOFException- если поток достиг конца, прежде чем были прочитаны все байты. -
IOException- если произошла ошибка ввода-вывода. - См. также:
ImageInputStream.readUnsignedShort()
readInt
public int readInt()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает 4 байта из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как int.
Смещение бита в потоке игнорируется и рассматривается как ноль.
- Определено:
-
readIntв интерфейсеDataInput - Определено:
-
readIntв интерфейсеImageInputStream - Возвращает:
- знаковое целое значение int из потока.
- Исключения:
-
EOFException- если поток достиг конца, прежде чем были прочитаны все байты. -
IOException- если произошла ошибка ввода-вывода. - См. также:
ImageInputStream.getByteOrder()
readUnsignedInt
public long readUnsignedInt()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает 4 байта из потока и (понятийно) конкатенирует их в соответствии с текущим порядком байтов, преобразует результат в long, маскирует его с помощью 0xffffffffL для удаления битов расширения знака и возвращает результат как беззнаковое long значение.
Смещение бита в потоке сбрасывается до нуля перед чтением.
- Определено:
-
readUnsignedIntв интерфейсеImageInputStream - Возвращает:
- беззнаковое целое значение int из потока, как long.
- Исключения:
-
EOFException- если поток достиг конца, прежде чем были прочитаны все байты. -
IOException- если произошла ошибка ввода-вывода. - См. также:
ImageInputStream.getByteOrder()
readLong
public long readLong()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает 8 байтов из потока, (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как long.
Смещение бита в потоке сбрасывается до нуля перед чтением.
- Определено:
-
readLongв интерфейсеDataInput - Определено:
-
readLongв интерфейсеImageInputStream - Возвращает:
- знаковое длинное целое значение long из потока.
- Исключения:
-
EOFException- если поток достиг конца, прежде чем были прочитаны все байты. -
IOException- если произошла ошибка ввода-вывода. - См. также:
ImageInputStream.getByteOrder()
readFloat
public float readFloat()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает 4 байта из потока, (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как float.
Смещение бита в потоке сбрасывается до нуля перед чтением.
- Определено:
-
readFloatв интерфейсеDataInput - Определено:
-
readFloatв интерфейсеImageInputStream - Возвращает:
- значение float из потока.
- Исключения:
-
EOFException- если поток достиг конца, прежде чем были прочитаны все байты. -
IOException- если произошла ошибка ввода-вывода. - См. также:
ImageInputStream.getByteOrder()
readDouble
public double readDouble()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает 8 байтов из потока, (понятийно) конкатенирует их в соответствии с текущим порядком байтов и возвращает результат как double.
Смещение бита в потоке сбрасывается до нуля перед чтением.
- Определено:
-
readDoubleв интерфейсеDataInput - Определено:
-
readDoubleв интерфейсеImageInputStream - Возвращает:
- значение double из потока.
- Исключения:
-
EOFException- если поток достиг конца, прежде чем были прочитаны все байты. -
IOException- если произошла ошибка ввода-вывода. - См. также:
ImageInputStream.getByteOrder()
readLine
public String readLine()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает следующую строку текста из входного потока. Он считывает последовательные байты, преобразуя каждый байт в отдельный символ, пока не встретит разделитель строки или конец файла; прочитанные символы возвращаются как String. Обратите внимание, что поскольку этот метод обрабатывает байты, он не поддерживает вход полного набора символов Юникода.
Если конец файла встречен до того, как можно прочитать хотя бы один байт, то возвращается null. В противном случае каждый прочитанный байт преобразуется в тип char с нулевым расширением. Если встречен символ '\n', он отбрасывается, и чтение прекращается. Если встречен символ '\r', он отбрасывается, и если следующий байт преобразуется в символ '\n', то он также отбрасывается; чтение прекращается. Если конец файла встречен до того, как встречены любой из символов '\n' и '\r', чтение прекращается. После прекращения чтения возвращается String, содержащий все прочитанные и не отброшенные символы в порядке их чтения. Обратите внимание, что каждое значение символа в этой строке будет меньше \u0100, то есть (char)256.
Смещение бита в потоке сбрасывается до нуля перед чтением.
- Определено:
-
readLineв интерфейсеDataInput - Определено:
-
readLineв интерфейсеImageInputStream - Возвращает:
- строку, содержащую строку текста из потока.
- Исключения:
-
IOException- если произошла ошибка ввода-вывода.
readUTF
public String readUTF()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает строку, закодированную с использованием формата modified UTF-8. Общее условие readUTF заключается в том, что он считывает представление Unicode-строки, закодированной в формате modified 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, поскольку используемый здесь modified UTF-8 несовместим со стандартным UTF-8.
- Указано в:
-
readUTFв интерфейсеDataInput - Указано в:
-
readUTFв интерфейсеImageInputStream - Возвращает:
- строку, считанную из потока.
- Исключения:
-
EOFException- если этот поток достигнет конца до чтения всех байтов. -
UTFDataFormatException- если байты не представляют собой допустимое кодирование modified UTF-8 строки. -
IOException- если произошла ошибка ввода-вывода.
readFully
public void readFully(byte[] b,
int off,
int len)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает len байтов из потока и сохраняет их в b начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.
Смещение по битам в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readFullyв интерфейсеDataInput - Указано в:
-
readFullyв интерфейсеImageInputStream - Параметры:
-
b- массив байтов, в который будет производиться запись. -
off- начальная позиция вbдля записи. -
len- максимальное количествоbyteдля чтения. - Исключения:
-
EOFException- если поток достигнет конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
public void readFully(byte[] b)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает b.length байтов из потока и сохраняет их в b начиная с индекса 0. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.
Смещение по битам в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readFullyв интерфейсеDataInput - Указано в:
-
readFullyв интерфейсеImageInputStream - Параметры:
-
b- массивbyte. - Исключения:
-
EOFException- если поток достигнет конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
public void readFully(short[] s,
int off,
int len)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает len коротких целых чисел (знаковых 16-битных целых чисел) из потока в соответствии с текущим порядком байтов и сохраняет их в s начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.
Смещение по битам в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readFullyв интерфейсеImageInputStream - Параметры:
-
s- массив коротких целых чисел для записи. -
off- начальная позиция вsдля записи. -
len- максимальное количествоshortдля чтения. - Исключения:
-
EOFException- если поток достигнет конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
public void readFully(char[] c,
int off,
int len)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает len символов (беззнаковых 16-битных целых чисел) из потока в соответствии с текущим порядком байтов и сохраняет их в c начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.
Смещение по битам в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readFullyв интерфейсеImageInputStream - Параметры:
-
c- массив символов для записи. -
off- начальная позиция вcдля записи. -
len- максимальное количествоcharдля чтения. - Исключения:
-
EOFException- если поток достигнет конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
public void readFully(int[] i,
int off,
int len)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает len целых чисел (знаковых 32-битных целых чисел) из потока в соответствии с текущим порядком байтов и сохраняет их в i начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.
Смещение по битам в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readFullyв интерфейсеImageInputStream - Параметры:
-
i- массив целых чисел для записи. -
off- начальная позиция вiдля записи. -
len- максимальное количествоintдля чтения. - Исключения:
-
EOFException- если поток достигнет конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
public void readFully(long[] l,
int off,
int len)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает len длинных целых чисел (знаковых 64-битных целых чисел) из потока в соответствии с текущим порядком байтов и сохраняет их в l начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.
Смещение по битам в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readFullyв интерфейсеImageInputStream - Параметры:
-
l- массив длинных целых чисел для записи. -
off- начальная позиция вlдля записи. -
len- максимальное количествоlongдля чтения. - Исключения:
-
EOFException- если поток достигнет конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
public void readFully(float[] f,
int off,
int len)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает len чисел с плавающей точкой (32-битные числа с плавающей точкой одинарной точности IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в f начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.
Смещение по битам в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readFullyв интерфейсеImageInputStream - Параметры:
-
f- массив чисел с плавающей точкой для записи. -
off- начальная позиция вfдля записи. -
len- максимальное количествоfloatдля чтения. - Исключения:
-
EOFException- если поток достигнет конца до чтения всех байтов. -
IOException- если произошла ошибка ввода-вывода.
readFully
public void readFully(double[] d,
int off,
int len)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает len чисел с плавающей точкой двойной точности (64-битные числа с плавающей точкой IEEE) из потока в соответствии с текущим порядком байтов и сохраняет их в d начиная с индекса off. Если достигнут конец потока, будет выброшено исключение java.io.EOFException.
Смещение по битам в потоке сбрасывается в ноль перед чтением.
- Указано в:
-
readFullyв интерфейсеImageInputStream - Параметры:
-
d- массив чисел с плавающей точкой двойной точности, в который будут записаны данные. -
off- начальная позиция вdдля записи. -
len- максимальное количествоdouble, которые нужно прочитать. - Исключения:
-
EOFException- если поток достигает конца до чтения всех байтов. -
IOException- если возникает ошибка ввода-вывода.
getStreamPosition
public long getStreamPosition()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Возвращает текущую позицию байта в потоке. Следующее чтение будет выполнено начиная с этого смещения.
- Указано в:
-
getStreamPositionв интерфейсеImageInputStream - Возвращает:
- целое число
long, содержащее позицию потока. - Исключения:
-
IOException- если возникает ошибка ввода-вывода.
getBitOffset
public int getBitOffset()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Возвращает текущее смещение по битам как целое число от 0 до 7 включительно. Смещение по битам неявно обновляется вызовами метода readBits. Значение 0 указывает на самый старший бит, а значение 7 — на самый младший бит считываемого байта.
Смещение по битам устанавливается в 0 при первом открытии потока и сбрасывается в 0 вызовами seek, skipBytes или любого метода read или readFully.
- Указано в:
-
getBitOffsetв интерфейсеImageInputStream - Возвращает:
- число
int, содержащее смещение по битам от 0 до 7 включительно. - Исключения:
-
IOException- если возникает ошибка ввода-вывода. - См. также:
ImageInputStream.setBitOffset(int)
setBitOffset
public void setBitOffset(int bitOffset)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Устанавливает смещение по битам в целое число от 0 до 7 включительно. Смещение байтов в потоке, возвращаемое методом getStreamPosition, остается неизменным. Значение 0 указывает на самый старший бит, а значение 7 — на самый младший бит считываемого байта.
- Указано в:
-
setBitOffsetв интерфейсеImageInputStream - Параметры:
-
bitOffset- желаемое смещение как числоintот 0 до 7 включительно. - Исключения:
-
IOException- если возникает ошибка ввода-вывода. - См. также:
ImageInputStream.getBitOffset()
readBit
public int readBit()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает один бит из потока и возвращает его как число int со значением 0 или 1. Смещение по битам увеличивается на единицу и уменьшается по модулю 8.
- Указано в:
-
readBitв интерфейсеImageInputStream - Возвращает:
- число
int, содержащее значение0или1. - Исключения:
-
EOFException- если поток достигает конца до чтения всех битов. -
IOException- если возникает ошибка ввода-вывода.
readBits
public long readBits(int numBits)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Считывает битовую строку из потока и возвращает ее как число long, при этом первый считанный бит становится старшим битом выходных данных. Чтение начинается в байте, указанном getStreamPosition, в бите, указанном getBitOffset. Смещение по битам увеличивается на numBits и уменьшается по модулю 8.
Порядок байтов в потоке не влияет на этот метод. Возвращаемое значение этого метода строится так, как если бы биты считывались по одному и сдвигались в правую сторону возвращаемого значения, как показано в следующем псевдокоде:
long accum = 0L;
for (int i = 0; i < numBits; i++) {
accum <<= 1; // Shift left one bit to make room
accum |= readBit();
} Обратите внимание, что результат readBits(32) может не быть равен результату readInt(), если используется обратный порядок байтов в сети (т. е. getByteOrder() ==
false). Если конец потока встречается до того, как будут считаны все биты, генерируется исключение java.io.EOFException.
- Указано в:
-
readBitsв интерфейсеImageInputStream - Параметры:
-
numBits- количество битов для чтения как числоintот 0 до 64 включительно. - Возвращает:
- битовую строку как число
longс последним считанным битом, хранящимся в младшем бите. - Исключения:
-
EOFException- если поток достигает конца до чтения всех битов. -
IOException- если возникает ошибка ввода-вывода.
length
public long length()
Возвращает -1L, чтобы указать, что поток имеет неизвестную длину. Подклассы должны переопределить этот метод, чтобы предоставить фактическую информацию о длине.
- Указано в:
-
lengthв интерфейсеImageInputStream - Возвращает:
- -1L, чтобы указать неизвестную длину.
skipBytes
public int skipBytes(int n)
throws IOException Перемещает текущую позицию потока, вызывая seek(getStreamPosition() + n).
Смещение по битам сбрасывается в ноль.
- Указано в:
-
skipBytesв интерфейсеDataInput - Указано в:
-
skipBytesв интерфейсеImageInputStream - Параметры:
-
n- количество байтов, на которое нужно переместиться вперед. - Возвращает:
- число
int, представляющее количество пропущенных байтов. - Исключения:
-
IOException- еслиgetStreamPositionгенерирует исключениеIOExceptionпри вычислении начальной или конечной позиции.
skipBytes
public long skipBytes(long n)
throws IOException Перемещает текущую позицию потока, вызывая seek(getStreamPosition() + n).
Смещение по битам сбрасывается в ноль.
- Указано в:
-
skipBytesв интерфейсеImageInputStream - Параметры:
-
n- количество байтов, на которое нужно переместиться вперед. - Возвращает:
- число
long, представляющее количество пропущенных байтов. - Исключения:
-
IOException- еслиgetStreamPositionгенерирует исключениеIOExceptionпри вычислении начальной или конечной позиции.
seek
public void seek(long pos)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Устанавливает текущую позицию потока в нужное место. Следующее чтение произойдет в этом месте. Смещение по битам устанавливается в 0.
Исключение IndexOutOfBoundsException будет выброшено, если pos меньше очищенной позиции (как возвращается getflushedPosition).
Разрешено перемещаться за конец файла; исключение java.io.EOFException будет выброшено только в случае выполнения чтения.
- Указано в:
-
seekв интерфейсеImageInputStream - Параметры:
-
pos- числоlong, содержащее желаемую позицию указателя файла. - Исключения:
-
IOException- если возникает любая другая ошибка ввода-вывода.
mark
public void mark()
Помещает текущую позицию потока в стек помеченных позиций.
- Указано в:
-
markв интерфейсеImageInputStream
reset
public void reset()
throws IOException Сбрасывает текущие позиции байтов и битов потока из стека помеченных позиций.
Исключение IOException будет выброшено, если предыдущая помеченная позиция находится в отброшенной части потока.
- Указано в:
-
resetв интерфейсеImageInputStream - Исключения:
-
IOException- если возникает ошибка ввода-вывода.
flushBefore
public void flushBefore(long pos)
throws IOException Описание скопировано из интерфейса: ImageInputStream
Отбрасывает начальную часть потока до указанной позиции. Попытка переместиться в смещение в очищенной части потока приведет к исключению IndexOutOfBoundsException.
Вызов flushBefore может позволить классам, реализующим этот интерфейс, освободить ресурсы, такие как память или дисковое пространство, которые используются для хранения данных из потока.
- Указано в:
-
flushBeforeв интерфейсеImageInputStream - Параметры:
-
pos- числоlong, содержащее длину префикса потока, который может быть очищен. - Исключения:
-
IOException- если возникает ошибка ввода-вывода.
flush
public void flush()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Отбрасывает начальную позицию потока до текущей позиции потока. Эквивалентно flushBefore(getStreamPosition()).
- Указано в:
-
flushв интерфейсеImageInputStream - Исключения:
-
IOException- если возникает ошибка ввода-вывода.
getFlushedPosition
public long getFlushedPosition()
Описание скопировано из интерфейса: ImageInputStream
Возвращает самую раннюю позицию в потоке, в которую можно выполнить перемещение. Возвращаемое значение будет максимальным из всех значений, переданных в предыдущие вызовы flushBefore.
- Указано в:
-
getFlushedPositionв интерфейсеImageInputStream - Возвращает:
- самую раннюю допустимую позицию для перемещения как число
long.
isCached
public boolean isCached()
Реализация по умолчанию возвращает false. Подклассы должны переопределить это, если они кэшируют данные.
- Указано в:
-
isCachedв интерфейсеImageInputStream - Возвращает:
-
trueесли этотImageInputStreamкэширует данные. - См. также:
-
ImageInputStream.isCachedMemory(),ImageInputStream.isCachedFile()
isCachedMemory
public boolean isCachedMemory()
Реализация по умолчанию возвращает false. Подклассы должны переопределить этот метод, если они кэшируют данные в оперативной памяти.
- Определено в:
-
isCachedMemoryв интерфейсеImageInputStream - Возвращает:
-
trueесли этотImageInputStreamкэширует данные в оперативной памяти. - См. также:
-
ImageInputStream.isCached(),ImageInputStream.isCachedFile()
isCachedFile
public boolean isCachedFile()
Реализация по умолчанию возвращает false. Подклассы должны переопределить этот метод, если они кэшируют данные во временном файле.
- Определено в:
-
isCachedFileв интерфейсеImageInputStream - Возвращает:
-
trueесли этотImageInputStreamкэширует данные во временном файле. - См. также:
-
ImageInputStream.isCached(),ImageInputStream.isCachedMemory()
close
public void close()
throws IOException Описание скопировано из интерфейса: ImageInputStream
Закрывает поток. Попытка доступа к потоку, который был закрыт, может привести к IOException или некорректному поведению. Вызов этого метода может позволить классам, реализующим этот интерфейс, освободить ресурсы, связанные с потоком, такие как память, дисковое пространство или дескрипторы файлов.
- Определено в:
-
closeв интерфейсеCloseable - Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеImageInputStream - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
finalize
protected void finalize()
throws Throwable Завершает работу этого объекта перед сборкой мусора. Метод close вызывается для закрытия всех открытых источников ввода. Этот метод не должен вызываться из кода приложения.
- Переопределяет:
-
finalizeв классеObject - Исключения:
-
Throwable- если произошла ошибка при завершении работы суперкласса. - См. также:
-
WeakReference,PhantomReference
© 1993, 2020, 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.