Интерфейс ImageOutputStream
- Все суперинтерфейсы:
AutoCloseable, Closeable, DataInput, DataOutput, ImageInputStream
- Все известные реализующие классы:
FileCacheImageOutputStream, FileImageOutputStream, ImageOutputStreamImpl, MemoryCacheImageOutputStream
public interface ImageOutputStream extends ImageInputStream, DataOutput
ImageWriters. Различные целевые объекты вывода, такие как OutputStreams и Files, а также будущие высокоскоростные устройства ввода-вывода могут быть «обёрнуты» подходящей реализацией этого интерфейса для использования API Image I/O. В отличие от стандартного 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 |
Записывает последовательность значений типа double в поток в текущей позиции. |
void |
writeFloat |
Записывает значение float, состоящее из четырёх байтов, в выходной поток. |
void |
writeFloats |
Записывает последовательность значений типа float в поток в текущей позиции. |
void |
writeInt |
Записывает 32 бита v в поток. |
void |
writeInts |
Записывает последовательность значений типа int в поток в текущей позиции. |
void |
writeLong |
Записывает 64 бита v в поток. |
void |
writeLongs |
Записывает последовательность значений типа long в поток в текущей позиции. |
void |
writeShort |
Записывает в поток 16 младших битов v. |
void |
writeShorts |
Записывает последовательность значений типа short в поток в текущей позиции. |
void |
writeUTF |
Записывает в выходной поток два байта с информацией о длине в сетевом порядке байтов, а затем представление модифицированного UTF-8 каждого символа строки s. |
Методы, объявленные в интерфейсе 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—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
v. 24 старших бита v игнорируются. (Это означает, что writeByte выполняет в точности то же действие, что и write для аргумента типа integer.) Если смещение бита в потоке не равно нулю, оставшаяся часть текущего байта заполняется нулями и сначала записывается. После записи смещение бита будет равно 0.
- Определено в:
-
writeByteв интерфейсеDataOutput - Параметры:
-
v—int, содержащий значение байта для записи. - Исключения:
-
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—int, содержащее значение short для записи. - Исключения:
-
IOException— если произошла ошибка ввода-вывода.
writeChar
void writeChar(int v) throws IOException
writeShort.- Определено в:
-
writeCharв интерфейсеDataOutput - Параметры:
-
v—int, содержащее значение char (беззнаковое short) для записи. - Исключения:
-
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—int, содержащее значение для записи. - Исключения:
-
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—long, содержащее значение для записи. - Исключения:
-
IOException— если произошла ошибка ввода-вывода.
writeFloat
void writeFloat(float v) throws IOException
float, состоящее из четырех байтов. Это выполняется так, как если бы сначала значение float преобразовывалось в int точно так же, как в методе Float.floatToIntBits, а затем значение int записывалось точно так же, как в методе writeInt. Если смещение бита в потоке не равно нулю, оставшаяся часть текущего байта заполняется нулями и сначала записывается. После записи смещение бита будет равно 0.
- Определено в:
-
writeFloatв интерфейсеDataOutput - Параметры:
-
v—float, содержащее значение для записи. - Исключения:
-
IOException— если произошла ошибка ввода-вывода.
writeDouble
void writeDouble(double v) throws IOException
double, состоящее из четырех байтов. Это выполняется так, как если бы сначала значение double преобразовывалось в long точно так же, как в методе Double.doubleToLongBits, а затем значение long записывалось точно так же, как в методе 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.
- Определено в:
-
writeBytesв интерфейсеDataOutput - Параметры:
-
s—String, содержащее значение для записи. - Исключения:
-
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—String, содержащее значение для записи. - Исключения:
-
NullPointerException— еслиsравноnull. -
IOException— если произошла ошибка ввода-вывода.
writeUTF
void writeUTF(String s) throws IOException
s в кодировке модифицированный UTF-8. Если 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—String, содержащее значение для записи. - Исключения:
-
NullPointerException— еслиsравноnull. -
UTFDataFormatException— если для представленияsв модифицированной кодировке UTF-8 требуется более 65536 байтов. -
IOException— если произошла ошибка ввода-вывода.
writeShorts
void writeShorts(short[] s, int off, int len) throws IOException
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
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
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
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
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
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
Если к моменту сброса байта в целевое устройство какие-либо биты этого байта ни разу не были установлены, они автоматически устанавливаются в 0.
- Параметры:
-
bit—int, наименее значащий бит которого записывается в поток. - Исключения:
-
IOException— если произошла ошибка ввода-вывода.
writeBits
void writeBits(long bits, int numBits) throws IOException
numBits наименее значащими битами аргумента bits в порядке слева направо, по текущему смещению бита в текущей позиции байта. Старшие 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, 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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/imageio/stream/ImageOutputStream.html