Интерфейс ImageOutputStream
- Все суперинтерфейсы:
-
AutoCloseable,Closeable,DataInput,DataOutput,ImageInputStream
- Все известные реализующие классы:
-
FileCacheImageOutputStream,FileImageOutputStream,ImageOutputStreamImpl,MemoryCacheImageOutputStream
public interface ImageOutputStream extends ImageInputStream, DataOutput
ImageWriter. Различные места назначения вывода, такие как OutputStream и File, а также будущие места назначения с высокой скоростью ввода-вывода могут быть «обёрнуты» подходящей реализацией этого интерфейса для использования API ввода-вывода изображений. В отличие от стандартного OutputStream, ImageOutputStream расширяет свой аналог, ImageInputStream. Таким образом, из потока можно читать в процессе записи. Те же позиции поиска и очистки применяются как при чтении, так и при записи, хотя семантика работы с ненулевым битовым смещением перед байт-выровненной записью обязательно отличается от семантики работы с ненулевым битовым смещением перед байт-выровненным чтением. При чтении байтов любое битовое смещение устанавливается в 0 перед чтением; при записи байтов ненулевое битовое смещение приводит к записи оставшихся битов в байте как 0. Запись байт-выровненной записи затем начинается с следующей позиции байта.
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
flushBefore |
Очищает все данные перед заданной позицией в базовом месте назначения, таком как OutputStream или File. |
void |
write |
Записывает последовательность байтов в поток в текущей позиции. |
void |
write |
Записывает последовательность байтов в поток в текущей позиции. |
void |
write |
Записывает один байт в поток в текущей позиции. |
void |
writeBit |
Записывает один бит, заданный младшим битом аргумента, в поток в текущем битовом смещении в текущей позиции байта. |
void |
writeBits |
Записывает последовательность битов, заданную numBits младшими значащими битами bits аргумента в порядке слева направо, в поток в текущем битовом смещении в текущей позиции байта. |
void |
writeBoolean |
Записывает значение boolean в поток. |
void |
writeByte |
Записывает 8 младших битов v в поток. |
void |
writeBytes |
Записывает строку в поток вывода. |
void |
writeChar |
Этот метод является синонимом для writeShort. |
void |
writeChars |
Записывает последовательность символов в поток в текущей позиции. |
void |
writeChars |
Записывает строку в поток вывода. |
void |
writeDouble |
Записывает значение double, состоящее из четырёх байтов, в поток вывода. |
void |
writeDoubles |
Записывает последовательность чисел с плавающей точкой двойной точности в поток в текущей позиции. |
void |
writeFloat |
Записывает значение float, состоящее из четырёх байтов, в поток вывода. |
void |
writeFloats |
Записывает последовательность чисел с плавающей точкой одинарной точности в поток в текущей позиции. |
void |
writeInt |
Записывает 32 бита v в поток. |
void |
writeInts |
Записывает последовательность целых чисел в поток в текущей позиции. |
void |
writeLong |
Записывает 64 бита v в поток. |
void |
writeLongs |
Записывает последовательность длинных целых чисел в поток в текущей позиции. |
void |
writeShort |
Записывает 16 младших битов v в поток. |
void |
writeShorts |
Записывает последовательность коротких целых чисел в поток в текущей позиции. |
void |
writeUTF |
Записывает два байта информации о длине в поток в сетевом порядке байтов, а затем представление модифицированного UTF-8 каждого символа в строке s. |
Методы, объявленные в интерфейсе javax.imageio.stream.ImageInputStream
close, flush, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, isCached, isCachedFile, isCachedMemory, length, mark, read, read, read, readBit, readBits, readBoolean, readByte, readBytes, readChar, readDouble, readFloat, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedInt, readUnsignedShort, readUTF, reset, seek, setBitOffset, setByteOrder, skipBytes, skipBytes
Подробное описание методов
write
void write(int b) throws IOException
b игнорируются. Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи. Реализаторы могут использовать метод flushBits класса ImageOutputStreamImpl для гарантии этого.
- Определено в:
-
writeв интерфейсеDataOutput - Параметры:
-
b- целое число, нижние 8 битов которого подлежат записи. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
write
void write(byte[] b) throws IOException
b.length равно 0, ничего не записывается. Байты b[0] записывается первым, затем байт b[1], и так далее. Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.
- Определено в:
-
writeв интерфейсеDataOutput - Параметры:
-
b- массив байтов, подлежащих записи. - Исключения:
-
NullPointerException- еслиbравноnull. -
IOException- если произошла ошибка ввода-вывода.
write
void write(byte[] b, int off, int len) throws IOException
len равно 0, ничего не записывается. Байты b[off] записывается первым, затем байт b[off + 1], и так далее. Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи. Реализаторы могут использовать метод flushBits класса ImageOutputStreamImpl для гарантии этого.
- Определено в:
-
writeв интерфейсеDataOutput - Параметры:
-
b- массив байтов, подлежащих записи. -
off- начальный смещение в данных. -
len- количество байтов для записи. - Исключения:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольше, чемb.length. -
NullPointerException- еслиbравноnull. -
IOException- если произошла ошибка ввода-вывода.
writeBoolean
void writeBoolean(boolean v) throws IOException
v равно true, записывается значение (byte)1; если v равно false, записывается значение (byte)0. Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.
- Определено в:
-
writeBooleanв интерфейсеDataOutput - Параметры:
-
v- булевое значение, подлежащее записи. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
writeByte
void writeByte(int v) throws IOException
v в поток. 24 старших бита v игнорируются. (Это означает, что writeByte делает точно то же, что и write для целочисленного аргумента.) Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.
- Определено в:
-
writeByteв интерфейсеDataOutput - Параметры:
-
v- целое число, содержащее значение байта для записи. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
writeShort
void writeShort(int v) throws IOException
v в поток. 16 старших битов v игнорируются. Если поток использует сетевой порядок байтов, записываемые байты, в порядке, будут: (byte)((v >> 8) & 0xff) (byte)(v & 0xff)В противном случае записываемые байты будут:
(byte)(v & 0xff) (byte)((v >> 8) & 0xff)
Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.
- Определено в:
-
writeShortв интерфейсеDataOutput - Параметры:
-
v- целое число, содержащее значение короткого целого типа для записи. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
writeChar
void writeChar(int v) throws IOException
writeShort.- Определено в:
-
writeCharв интерфейсеDataOutput - Параметры:
-
v- целое число, содержащее значение символа (беззнаковое короткое целое) для записи. - Исключения:
-
IOException- если произошла ошибка ввода-вывода. - См. также:
writeInt
void writeInt(int v) throws IOException
v в поток. Если поток использует сетевой порядок байтов, записываемые байты, в порядке, будут: (byte)((v >> 24) & 0xff) (byte)((v >> 16) & 0xff) (byte)((v >> 8) & 0xff) (byte)(v & 0xff)В противном случае записываемые байты будут:
(byte)(v & 0xff) (byte)((v >> 8) & 0xff) (byte)((v >> 16) & 0xff) (byte)((v >> 24) & 0xff)
Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.
- Определено в:
-
writeIntв интерфейсеDataOutput - Параметры:
-
v- целое число, содержащее значение для записи. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
writeLong
void writeLong(long v) throws IOException
v в поток. Если поток использует сетевой порядок байтов, записываемые байты, в порядке, будут: (byte)((v >> 56) & 0xff) (byte)((v >> 48) & 0xff) (byte)((v >> 40) & 0xff) (byte)((v >> 32) & 0xff) (byte)((v >> 24) & 0xff) (byte)((v >> 16) & 0xff) (byte)((v >> 8) & 0xff) (byte)(v & 0xff)В противном случае записываемые байты будут:
(byte)(v & 0xff) (byte)((v >> 8) & 0xff) (byte)((v >> 16) & 0xff) (byte)((v >> 24) & 0xff) (byte)((v >> 32) & 0xff) (byte)((v >> 40) & 0xff) (byte)((v >> 48) & 0xff) (byte)((v >> 56) & 0xff)
Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.
- Определено в:
-
writeLongв интерфейсеDataOutput - Параметры:
-
v- длинное целое число, содержащее значение для записи. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
writeFloat
void writeFloat(float v) throws IOException
float, которое состоит из четырёх байтов, в выходной поток. Это делается так, как если бы сначала это значение с плавающей точкой было преобразовано в целое число float точно так же, как и в методе Float.floatToIntBits, а затем значение целого числа было записано точно так же, как и в методе writeInt. Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.
- Определено в:
-
writeFloatв интерфейсеDataOutput - Параметры:
-
v- число с плавающей точкой, содержащее значение для записи. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
writeDouble
void writeDouble(double v) throws IOException
double, которое состоит из четырёх байтов, в выходной поток. Это делается так, как если бы сначала это значение с двойной точностью было преобразовано в длинное целое число double точно так же, как и в методе Double.doubleToLongBits, а затем значение длинного целого числа было записано точно так же, как и в методе writeLong. Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.
- Определено в:
-
writeDoubleв интерфейсеDataOutput - Параметры:
-
v- число с двойной точностью, содержащее значение для записи. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
writeBytes
void writeBytes(String s) throws IOException
s, взятом в порядке следования, в поток вывода записывается один байт. Если s равно null, выбрасывается NullPointerException. Если s.length равно нулю, то байты не записываются. В противном случае сначала записывается символ s[0], затем s[1], и так далее; последний записанный символ — s[s.length-1]. Для каждого символа записывается один байт, младший байт, точно так же, как в методе writeByte. Восемь старших битов каждого символа в строке игнорируются.
Если смещение бита в потоке не равно нулю, остаток текущего байта дополняется нулями и записывается сначала. Смещение бита станет равным 0 после записи.
- Specified by:
-
writeBytesв интерфейсеDataOutput - Parameters:
-
s- aStringсодержащий значение для записи. - Throws:
-
NullPointerException- еслиsравноnull. -
IOException- если произошла ошибка ввода-вывода.
writeChars
void writeChars(String s) throws IOException
s, взятом в порядке следования, в поток вывода записываются два байта, упорядоченные в соответствии с текущей установкой порядка байтов. Если используется сетевой порядок байтов, сначала записывается старший байт; порядок меняется в противном случае. Если s равно null, выбрасывается NullPointerException. Если s.length равно нулю, то байты не записываются. В противном случае сначала записывается символ s[0], затем s[1], и так далее; последний записанный символ — s[s.length-1].
Если смещение бита в потоке не равно нулю, остаток текущего байта дополняется нулями и записывается сначала. Смещение бита станет равным 0 после записи.
- Specified by:
-
writeCharsв интерфейсеDataOutput - Parameters:
-
s- aStringсодержащий значение для записи. - Throws:
-
NullPointerException- еслиsравноnull. -
IOException- если произошла ошибка ввода-вывода.
writeUTF
void writeUTF(String s) throws IOException
s. Если s равно null, выбрасывается NullPointerException. Каждый символ в строке s преобразуется в группу из одного, двух или трех байтов в зависимости от значения символа. Если символ c находится в диапазоне от \u0001 до \u007f, он представляется одним байтом:
(byte)c
Если символ c равен \u0000 или находится в диапазоне от \u0080 до \u07ff, то он представляется двумя байтами, которые записываются в указанном порядке:
(byte)(0xc0 | (0x1f & (c >> 6)))
(byte)(0x80 | (0x3f & c))
Если символ c находится в диапазоне от \u0800 до uffff, то он представляется тремя байтами, которые записываются в указанном порядке:
(byte)(0xe0 | (0x0f & (c >> 12)))
(byte)(0x80 | (0x3f & (c >> 6)))
(byte)(0x80 | (0x3f & c))
Сначала вычисляется общее количество байтов, необходимых для представления всех символов s. Если это число больше 65535, выбрасывается UTFDataFormatException. В противном случае эта длина записывается в поток вывода точно так же, как в методе writeShort; после этого записывается представление каждого символа в строке s из одного, двух или трех байтов.
Текущая настройка порядка байтов игнорируется.
Примечание: Этот метод не следует использовать в реализации форматов изображений, использующих стандартный UTF-8, так как используемое здесь модифицированное UTF-8 несовместимо со стандартным UTF-8.
- Specified by:
-
writeUTFв интерфейсеDataOutput - Parameters:
-
s- aStringсодержащий значение для записи. - Throws:
-
NullPointerException- еслиsравноnull. -
UTFDataFormatException- если модифицированное представление UTF-8sтребует более 65536 байтов. -
IOException- если произошла ошибка ввода-вывода.
writeShorts
void writeShorts(short[] s, int off, int len) throws IOException
len равно 0, ничего не записывается. Сначала записывается short s[off], затем short s[off + 1], и так далее. Порядок байтов потока используется для определения порядка записи отдельных байтов. Если смещение бита в потоке не равно нулю, остаток текущего байта дополняется нулями и записывается сначала. Смещение бита станет равным 0 после записи.
- Parameters:
-
s- массивshortдля записи. -
off- начальное смещение в данных. -
len- количествоshortдля записи. - Throws:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольшеs.length. -
NullPointerException- еслиsравноnull. -
IOException- если произошла ошибка ввода-вывода.
writeChars
void writeChars(char[] c, int off, int len) throws IOException
len равно 0, ничего не записывается. Сначала записывается char c[off], затем char c[off + 1], и так далее. Порядок байтов потока используется для определения порядка записи отдельных байтов. Если смещение бита в потоке не равно нулю, остаток текущего байта дополняется нулями и записывается сначала. Смещение бита станет равным 0 после записи.
- Parameters:
-
c- массивcharдля записи. -
off- начальное смещение в данных. -
len- количествоcharдля записи. - Throws:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольшеc.length. -
NullPointerException- еслиcравноnull. -
IOException- если произошла ошибка ввода-вывода.
writeInts
void writeInts(int[] i, int off, int len) throws IOException
len равно 0, ничего не записывается. Сначала записывается int i[off], затем int i[off + 1], и так далее. Порядок байтов потока используется для определения порядка записи отдельных байтов. Если смещение бита в потоке не равно нулю, остаток текущего байта дополняется нулями и записывается сначала. Смещение бита станет равным 0 после записи.
- Parameters:
-
i- массивintдля записи. -
off- начальное смещение в данных. -
len- количествоintдля записи. - Throws:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольшеi.length. -
NullPointerException- еслиiравноnull. -
IOException- если произошла ошибка ввода-вывода.
writeLongs
void writeLongs(long[] l, int off, int len) throws IOException
len равно 0, ничего не записывается. Сначала записывается long l[off], затем long l[off + 1], и так далее. Порядок байтов потока используется для определения порядка записи отдельных байтов. Если смещение бита в потоке не равно нулю, остаток текущего байта дополняется нулями и записывается сначала. Смещение бита станет равным 0 после записи.
- Parameters:
-
l- массивlongдля записи. -
off- начальное смещение в данных. -
len- количествоlongдля записи. - Throws:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольшеl.length. -
NullPointerException- еслиlравноnull. -
IOException- если произошла ошибка ввода-вывода.
writeFloats
void writeFloats(float[] f, int off, int len) throws IOException
len равно 0, ничего не записывается. Сначала записывается число с плавающей точкой f[off], затем число f[off + 1], и так далее. Порядок байтов потока используется для определения порядка записи отдельных байтов. Если битовый сдвиг в потоке не равен нулю, остаток текущего байта заполняется нулями и записывается сначала. Битовый сдвиг будет равен 0 после записи.
- Parameters:
-
f- массив чисел с плавающей точкой для записи. -
off- начальный смещение в данных. -
len- количество чисел с плавающей точкой для записи. - Throws:
-
IndexOutOfBoundsException- еслиoffотрицательное,lenотрицательное илиoff + lenбольше, чемf.length. -
NullPointerException- еслиfравноnull. -
IOException- если произошла ошибка ввода-вывода.
writeDoubles
void writeDoubles(double[] d, int off, int len) throws IOException
len равно 0, ничего не записывается. Сначала записывается число с двойной точностью d[off], затем число d[off + 1], и так далее. Порядок байтов потока используется для определения порядка записи отдельных байтов. Если битовый сдвиг в потоке не равен нулю, остаток текущего байта заполняется нулями и записывается сначала. Битовый сдвиг будет равен 0 после записи.
- Parameters:
-
d- массив чисел с двойной точностью для записи. -
off- начальный смещение в данных. -
len- количество чисел с двойной точностью для записи. - Throws:
-
IndexOutOfBoundsException- еслиoffотрицательное,lenотрицательное илиoff + lenбольше, чемd.length. -
NullPointerException- еслиdравноnull. -
IOException- если произошла ошибка ввода-вывода.
writeBit
void writeBit(int bit) throws IOException
Если какие-либо биты конкретного байта никогда не были установлены в момент записи байта в место назначения, эти биты автоматически устанавливаются в 0.
- Parameters:
-
bit- целое число, младший бит которого должен быть записан в поток. - Throws:
-
IOException- если произошла ошибка ввода-вывода.
writeBits
void writeBits(long bits, int numBits) throws IOException
numBits младшими битами аргумента bits в порядке слева направо, в поток в текущей позиции битового сдвига в текущей позиции байта. Старшие 64 - numBits биты аргумента игнорируются. Битовый сдвиг увеличивается на numBits и уменьшается по модулю 8. Обратите внимание, что битовый сдвиг 0 всегда указывает на старший бит байта, и байты битов записываются последовательно по мере их появления. Таким образом, запись битов всегда выполняется в сетевом порядке байтов. Фактическое значение порядка байтов потока игнорируется. Данные битов могут накапливаться в памяти неопределенно долго, пока не будет вызвано flushBefore. В этот момент все данные битов до позиции сброса будут записаны.
Если какие-либо биты конкретного байта никогда не были установлены в момент записи байта в место назначения, эти биты автоматически устанавливаются в 0.
- Parameters:
-
bits- длинное целое число, содержащее биты для записи, начиная с бита в позицииnumBits - 1и до младшего бита. -
numBits- целое число от 0 до 64 включительно. - Throws:
-
IllegalArgumentException- еслиnumBitsне находится в диапазоне от 0 до 64 включительно. -
IOException- если произошла ошибка ввода-вывода.
flushBefore
void flushBefore(long pos) throws IOException
OutputStream или File. Попытка перейти к сброшенной части потока приведет к ошибке IndexOutOfBoundsException.- Specified by:
-
flushBeforeв интерфейсеImageInputStream - Parameters:
-
pos- длинное целое число, содержащее длину префикса потока, который можно сбросить в место назначения. - Throws:
-
IndexOutOfBoundsException- еслиposнаходится в сброшенной части потока или за текущей позицией потока. -
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/ImageOutputStream.html