Интерфейс 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.floatToIntBits, а затем записано значение целого числа точно так же, как в методе writeInt. Если битовое смещение в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Битовое смещение будет равно 0 после записи.
- Указано в:
-
writeFloatв интерфейсеDataOutput - Параметры:
-
v- число с плавающей запятой, содержащее значение для записи. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
writeDouble
void writeDouble(double v) throws IOException
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-8 строкиsтребует более 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 после записи.
- Параметры:
-
f- массив чисел с плавающей точкой, которые нужно записать. -
off- начальный смещение в данных. -
len- количество чисел с плавающей точкой для записи. - Исключения:
-
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 после записи.
- Параметры:
-
d- массив чисел двойной точности для записи. -
off- начальный смещение в данных. -
len- количество чисел двойной точности для записи. - Исключения:
-
IndexOutOfBoundsException- еслиoffотрицательно,lenотрицательно илиoff + lenбольше, чемd.length. -
NullPointerException- еслиdравноnull. -
IOException- если произошла ошибка ввода-вывода.
writeBit
void writeBit(int bit) throws IOException
Если какие-либо биты конкретного байта никогда не были установлены во время сброса байта в место назначения, эти биты будут автоматически установлены в 0.
- Параметры:
-
bit- целое число, младший бит которого должен быть записан в поток. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
writeBits
void writeBits(long bits, int numBits) throws IOException
numBits младшими битами аргумента bits в порядке слева направо, в поток в текущем битовом смещении текущей позиции байта. Старшие 64 - numBits биты аргумента игнорируются. Битовый сдвиг увеличивается на numBits и уменьшается по модулю 8. Обратите внимание, что битовый сдвиг 0 всегда указывает на старший бит байта, и биты байтов записываются последовательно по мере их обнаружения. Таким образом, битовые записи всегда фактически в сетевом порядке байтов. Фактическая настройка порядка байтов потока игнорируется. Данные битов могут накапливаться в памяти неопределенно долго, пока не будет вызван flushBefore. В этот момент все данные битов перед очищенной позицией будут записаны.
Если какие-либо биты конкретного байта никогда не были установлены во время сброса байта в место назначения, эти биты будут автоматически установлены в 0.
- Параметры:
-
bits- целое число с плавающей точкой, содержащее биты для записи, начиная с бита в позицииnumBits - 1до младшего бита. -
numBits- целое число от 0 до 64 включительно. - Исключения:
-
IllegalArgumentException- еслиnumBitsне находится в диапазоне от 0 до 64 включительно. -
IOException- если произошла ошибка ввода-вывода.
flushBefore
void flushBefore(long pos) throws IOException
IndexOutOfBoundsException.- Определено в:
-
flushBeforeв интерфейсеImageInputStream - Параметры:
-
pos- целое число, содержащее длину префикса потока, который можно сбросить в место назначения. - Исключения:
-
IndexOutOfBoundsException- еслиposнаходится в очищенной части потока или за пределами текущей позиции потока. -
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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/imageio/stream/ImageOutputStream.html