Spec-Zone.ru › OpenJDK 8

Интерфейс 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 - целое число, чьи младшие 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

Записывает значение типа 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 - целое число, содержащее значение байта для записи.
Исключение:
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 - целое число, содержащее значение короткого целого типа для записи.
Исключение:
IOException - если произошла ошибка ввода/вывода.

writeChar

void writeChar(int v)
        throws IOException

Этот метод является синонимом для writeShort.

Указано в:
writeChar в интерфейсе DataOutput
Параметры:
v - целое число, содержащее значение char (unsigned 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 - целое число, содержащее значение для записи.
Исключение:
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 - длинное целое число, содержащее значение для записи.
Исключение:
IOException - если произошла ошибка ввода/вывода.

writeFloat

void writeFloat(float v)
         throws IOException

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

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

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

writeDouble

void writeDouble(double v)
          throws IOException

Записывает значение типа double, состоящее из восьми байтов, в выходной поток. Это делается так, как если бы сначала это значение типа double было преобразовано в длинное целое число long точно так же, как метод Double.doubleToLongBits, а затем значение типа long было записано точно так же, как метод 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 . 8 старших битов каждого символа в строке игнорируются.

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

Указано в:
writeBytes в интерфейсе DataOutput
Параметры:
s - строка, содержащая значение для записи.
Исключение:
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 после записи.

Указано в:
writeChars в интерфейсе DataOutput
Параметры:
s - a String содержащий значение для записи.
Выбрасывает:
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 в формате из одного, двух или трёх байтов.

Текущая настройка порядка байтов игнорируется.

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

Примечание: Этот метод не следует использовать в реализации форматов изображений, которые используют стандартный UTF-8, так как используемый здесь изменённый UTF-8 несовместим со стандартным UTF-8.

Указано в:
writeUTF в интерфейсе DataOutput
Параметры:
s - a String содержащий значение для записи.
Выбрасывает:
NullPointerException - если s равно null.
UTFDataFormatException - если изменённое UTF-8 представление s требует более 65536 байтов.
IOException - если произошла ошибка ввода-вывода.

writeShorts

void writeShorts(short[] s,
                 int off,
                 int len)
          throws IOException

Записывает последовательность short в поток по текущей позиции. Если len равно 0, ничего не записывается. Сначала записывается short s[off], затем short s[off + 1], и так далее. Порядок байтов в потоке используется для определения порядка записи отдельных байтов.

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

Параметры:
s - массив short для записи.
off - начальное смещение в данных.
len - количество short для записи.
Выбрасывает:
IndexOutOfBoundsException - если off отрицательно, len отрицательно или off + len больше s.length.
NullPointerException - если s равно null.
IOException - если произошла ошибка ввода-вывода.

writeChars

void writeChars(char[] c,
                int off,
                int len)
         throws IOException

Записывает последовательность char в поток по текущей позиции. Если len равно 0, ничего не записывается. Сначала записывается char c[off], затем char c[off + 1], и так далее. Порядок байтов в потоке используется для определения порядка записи отдельных байтов.

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

Параметры:
c - массив char для записи.
off - начальное смещение в данных.
len - количество char для записи.
Выбрасывает:
IndexOutOfBoundsException - если off отрицательно, len отрицательно или off + len больше c.length.
NullPointerException - если c равно null.
IOException - если произошла ошибка ввода-вывода.

writeInts

void writeInts(int[] i,
               int off,
               int len)
        throws IOException

Записывает последовательность int в поток по текущей позиции. Если len равно 0, ничего не записывается. Сначала записывается int i[off], затем int i[off + 1], и так далее. Порядок байтов в потоке используется для определения порядка записи отдельных байтов.

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

Параметры:
i - массив int для записи.
off - начальное смещение в данных.
len - количество int для записи.
Выбрасывает:
IndexOutOfBoundsException - если off отрицательно, len отрицательно или off + len больше i.length.
NullPointerException - если i равно null.
IOException - если произошла ошибка ввода-вывода.

writeLongs

void writeLongs(long[] l,
                int off,
                int len)
         throws IOException

Записывает последовательность long в поток по текущей позиции. Если len равно 0, ничего не записывается. Сначала записывается long l[off], затем long l[off + 1], и так далее. Порядок байтов в потоке используется для определения порядка записи отдельных байтов.

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

Параметры:
l - массив long для записи.
off - начальное смещение в данных.
len - количество long для записи.
Выбрасывает:
IndexOutOfBoundsException - если off отрицательно, len отрицательно или off + len больше l.length.
NullPointerException - если l равно null.
IOException - если произошла ошибка ввода-вывода.

writeFloats

void writeFloats(float[] f,
                 int off,
                 int len)
          throws IOException

Записывает последовательность float в поток по текущей позиции. Если len равно 0, ничего не записывается. Сначала записывается float f[off], затем float f[off + 1], и так далее. Порядок байтов в потоке используется для определения порядка записи отдельных байтов.

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

Параметры:
f - массив float для записи.
off - начальное смещение в данных.
len - количество float для записи.
Выбрасывает:
IndexOutOfBoundsException - если off отрицательно, len отрицательно или off + len больше f.length.
NullPointerException - если f равно null.
IOException - если произошла ошибка ввода-вывода.

writeDoubles

void writeDoubles(double[] d,
                  int off,
                  int len)
           throws IOException

Записывает последовательность double в поток по текущей позиции. Если len равно 0, ничего не записывается. Сначала записывается double d[off], затем double d[off + 1], и так далее. Порядок байтов в потоке используется для определения порядка записи отдельных байтов.

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

Параметры:
d - массив doubles для записи.
off - начальное смещение в данных.
len - количество double для записи.
Выбрасывает:
IndexOutOfBoundsException - если off отрицательно, len отрицательно или off + len больше d.length.
NullPointerException - если d равно null.
IOException - если произошла ошибка ввода-вывода.

writeBit

void writeBit(int bit)
       throws IOException

Записывает один бит, заданный младшим битом аргумента, в поток в текущей позиции битового смещения в текущей байтовой позиции. Верхние 31 бит аргумента игнорируются. Заданный бит заменяет предыдущий бит в этой позиции. Битовое смещение увеличивается на один и уменьшается по модулю 8.

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

Параметры:
bit - int, младший бит которого должен быть записан в поток.
Исключения:
IOException - если произошла ошибка ввода-вывода.

writeBits

void writeBits(long bits,
               int numBits)
        throws IOException

Записывает последовательность битов, заданную numBits младшими битами аргумента слева направо в поток в текущей позиции битового смещения в текущей байтовой позиции. Верхние 64 - numBits биты аргумента игнорируются. Битовое смещение увеличивается на numBits и уменьшается по модулю 8. Обратите внимание, что битовое смещение 0 всегда указывает на старший бит байта, и байты битов записываются последовательно по мере их появления. Таким образом, запись битов всегда выполняется в сетевом порядке байтов. Фактическая настройка порядка байтов потока игнорируется.

Данные битов могут накапливаться в памяти неопределенно долго, пока не будет вызван метод flushBefore. В этот момент все битовые данные перед сброшенной позицией будут записаны.

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

Параметры:
bits - long, содержащий биты, которые нужно записать, начиная с бита в позиции numBits - 1 и до младшего бита.
numBits - значение int от 0 до 64 включительно.
Исключения:
IllegalArgumentException - если numBits не находится в диапазоне от 0 до 64 включительно.
IOException - если произошла ошибка ввода-вывода.

flushBefore

void flushBefore(long pos)
          throws IOException

Сбрасывает все данные перед заданной позицией в базовое назначение, например, OutputStream или File. Попытка перейти к сброшенной части потока приведет к ошибке IndexOutOfBoundsException.

Определено в:
flushBefore в интерфейсе ImageInputStream
Параметры:
pos - long, содержащий длину префикса потока, который может быть сброшен в назначение.
Исключения:
IndexOutOfBoundsException - если pos находится в сброшенной части потока или после текущей позиции потока.
IOException - если произошла ошибка ввода-вывода.

© 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.

Spec-Zone.ru

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