Spec-Zone.ru › OpenJDK 21

Интерфейс 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. Запись байтов по выравниванию затем начинается с следующей позиции байта.

См. также:
  • ImageInputStream

Краткое описание методов

Модификатор и тип Метод Описание
void flushBefore(long pos)
Очищает все данные до заданной позиции в целевом месте назначения, например, в OutputStream или File.
void write(byte[] b)
Записывает последовательность байтов в поток в текущей позиции.
void write(byte[] b, int off, int len)
Записывает последовательность байтов в поток в текущей позиции.
void write(int b)
Записывает один байт в поток в текущей позиции.
void writeBit(int bit)
Записывает один бит, заданный младшим битом аргумента, в поток в текущем битовом смещении текущей позиции байта.
void writeBits(long bits, int numBits)
Записывает последовательность битов, заданных numBits младшими битами bits аргумента в порядке слева направо, в поток в текущем битовом смещении текущей позиции байта.
void writeBoolean(boolean v)
Записывает значение boolean в поток.
void writeByte(int v)
Записывает 8 младших битов v в поток.
void writeBytes(String s)
Записывает строку в поток вывода.
void writeChar(int v)
Этот метод является синонимом для writeShort.
void writeChars(char[] c, int off, int len)
Записывает последовательность символов в поток в текущей позиции.
void writeChars(String s)
Записывает строку в поток вывода.
void writeDouble(double v)
Записывает значение double, состоящее из четырёх байтов, в поток вывода.
void writeDoubles(double[] d, int off, int len)
Записывает последовательность чисел с плавающей запятой двойной точности в поток в текущей позиции.
void writeFloat(float v)
Записывает значение float, состоящее из четырёх байтов, в поток вывода.
void writeFloats(float[] f, int off, int len)
Записывает последовательность чисел с плавающей запятой одинарной точности в поток в текущей позиции.
void writeInt(int v)
Записывает 32 бита v в поток.
void writeInts(int[] i, int off, int len)
Записывает последовательность целых чисел в поток в текущей позиции.
void writeLong(long v)
Записывает 64 бита v в поток.
void writeLongs(long[] l, int off, int len)
Записывает последовательность длинных целых чисел в поток в текущей позиции.
void writeShort(int v)
Записывает 16 младших битов v в поток.
void writeShorts(short[] s, int off, int len)
Записывает последовательность коротких целых чисел в поток в текущей позиции.
void writeUTF(String s)
Записывает два байта информации о длине в поток в сетевом порядке байтов, а затем — представление символов в модифицированной 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
Записывает один байт в поток в текущей позиции. 24 старших бита b игнорируются.

Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи. Реализаторы могут использовать метод flushBits класса ImageOutputStreamImpl для гарантии этого.

Определено в:
write в интерфейсе DataOutput
Параметры:
b - целочисленное значение int, чьи 8 младших бит будут записаны.
Исключения:
IOException - если произошла ошибка ввода-вывода.

write

void write(byte[] b) throws IOException
Записывает последовательность байтов в поток в текущей позиции. Если b.length равно 0, ничего не записывается. Байты b[0] записывается сначала, затем байт b[1], и так далее.

Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.

Определено в:
write в интерфейсе DataOutput
Параметры:
b - массив байтов byte для записи.
Исключения:
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 - массив байтов byte для записи.
off - начальный смещение в данных.
len - количество байтов byte для записи.
Исключения:
IndexOutOfBoundsException - если off отрицательно, len отрицательно или off + len больше, чем b.length.
NullPointerException - если b равно null.
IOException - если произошла ошибка ввода-вывода.

writeBoolean

void writeBoolean(boolean v) throws IOException
Записывает логическое значение boolean в поток. Если v равно true, значение (byte)1 записывается; если v равно false, значение (byte)0 записывается.

Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.

Определено в:
writeBoolean в интерфейсе DataOutput
Параметры:
v - логическое значение boolean для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.

writeByte

void writeByte(int v) throws IOException
Записывает 8 младших бит v в поток. 24 старших бита v игнорируются. (Это означает, что writeByte делает ровно то же самое, что и write для целочисленного аргумента.)

Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.

Определено в:
writeByte в интерфейсе DataOutput
Параметры:
v - целое число int содержащее значение байта для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.

writeShort

void writeShort(int v) throws IOException
Записывает 16 младших бит v в поток. 16 старших бит v игнорируются. Если поток использует сетевой порядок байтов, записанные байты в порядке будут:
 (byte)((v >> 8) & 0xff)
 (byte)(v & 0xff)
 
В противном случае, записанные байты будут:
 (byte)(v & 0xff)
 (byte)((v >> 8) & 0xff)
 

Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.

Определено в:
writeShort в интерфейсе DataOutput
Параметры:
v - целое число int содержащее значение short для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.

writeChar

void writeChar(int v) throws IOException
Этот метод является синонимом для writeShort.
Определено в:
writeChar в интерфейсе DataOutput
Параметры:
v - целое число int содержащее значение char (безусловное short) для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • writeShort(int)

writeInt

void writeInt(int v) throws IOException
Записывает 32 бита 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 - целое число int содержащее значение для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.

writeLong

void writeLong(long v) throws IOException
Записывает 64 бита 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 - число с плавающей точкой long содержащее значение для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.

writeFloat

void writeFloat(float v) throws IOException
Записывает значение float (состоящее из четырёх байтов) в выходной поток. Это делается так, как будто сначала это значение float преобразуется в целое число int точно так же, как метод Float.floatToIntBits, а затем целое число записывается точно так же, как метод writeInt.

Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.

Определено в:
writeFloat в интерфейсе DataOutput
Параметры:
v - число с плавающей точкой float содержащее значение для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.

writeDouble

void writeDouble(double v) throws IOException
Записывает значение double (состоящее из восьми байтов) в выходной поток. Это делается так, как будто сначала это значение double преобразуется в длинное целое число long точно так же, как метод Double.doubleToLongBits, а затем длинное целое число записывается точно так же, как метод writeLong.

Если смещение бита в потоке не равно нулю, остаток текущего байта заполняется нулями и записывается сначала. Смещение бита будет равно 0 после записи.

Определено в:
writeDouble в интерфейсе DataOutput
Параметры:
v - число с плавающей точкой double содержащее значение для записи.
Исключения:
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 - a String содержащая значение, которое нужно записать.
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 - a String содержащая значение, которое нужно записать.
Throws:
NullPointerException - если s равно null.
IOException - если произошла ошибка ввода-вывода.

writeUTF

void writeUTF(String s) throws IOException
Записывает два байта информации о длине в поток вывода в сетевом порядке байтов, за которыми следует модифицированная UTF-8 - кодировка каждого символа в строке 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 - a String содержащая значение, которое нужно записать.
Throws:
NullPointerException - если s равно null.
UTFDataFormatException - если модифицированное UTF-8 представление s требует более 65536 байтов.
IOException - если произошла ошибка ввода-вывода.

writeShorts

void writeShorts(short[] s, int off, int len) throws IOException
Записывает последовательность коротких целых чисел в поток на текущей позиции. Если len равно 0, ничего не записывается. Короткий целочисленный s[off] записывается первым, затем короткий 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, ничего не записывается. Символ c[off] записывается первым, затем символ 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, ничего не записывается. Целое число i[off] записывается первым, затем целое число 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, ничего не записывается. Длинное целое число l[off] записывается первым, затем длинное целое число 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
Записывает один бит, заданный младшим битом аргумента, в поток в текущей позиции битового сдвига в текущей позиции байта. Старшие 31 бит аргумента игнорируются. Заданный бит заменяет предыдущий бит в этой позиции. Битовый сдвиг увеличивается на один и уменьшается по модулю 8.

Если какие-либо биты конкретного байта никогда не были установлены в момент записи байта в назначение, эти биты будут автоматически установлены в 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, 2023, 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/21/docs/api/java.desktop/javax/imageio/stream/ImageOutputStream.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API