Spec-Zone.ru › OpenJDK 25

Интерфейс DataOutput

Все известные подинтерфейсы:
ImageOutputStream, ObjectOutput
Все известные реализующие классы:
DataOutputStream, FileCacheImageOutputStream, FileImageOutputStream, ImageOutputStreamImpl, MemoryCacheImageOutputStream, ObjectOutputStream, RandomAccessFile
public interface DataOutput
Интерфейс DataOutput позволяет преобразовывать данные любого из примитивных типов Java в последовательность байтов и записывать эти байты в двоичный поток. Также он предоставляет возможность преобразовать String в формат модифицированного UTF-8 и записать полученную последовательность байтов.

Для всех методов этого интерфейса, записывающих байты, обычно действует правило: если по какой-либо причине байт не удается записать, выбрасывается IOException.

С версии:
1.0
См. также:
  • DataInput
  • DataOutputStream

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

Модификатор и тип Метод Описание
void write(byte[] b)
Записывает в выходной поток все байты массива b.
void write(byte[] b, int off, int len)
Записывает len байт из массива b в выходной поток по порядку.
void write(int b)
Записывает в выходной поток восемь младших битов аргумента b.
void writeBoolean(boolean v)
Записывает значение boolean в этот выходной поток.
void writeByte(int v)
Записывает в выходной поток восемь младших битов аргумента v.
void writeBytes(String s)
Записывает строку в выходной поток.
void writeChar(int v)
Записывает в выходной поток значение char, состоящее из двух байтов.
void writeChars(String s)
Записывает в выходной поток каждый символ строки s по порядку, по два байта на символ.
void writeDouble(double v)
Записывает в выходной поток значение double, состоящее из восьми байтов.
void writeFloat(float v)
Записывает в выходной поток значение float, состоящее из четырех байтов.
void writeInt(int v)
Записывает в выходной поток значение int, состоящее из четырех байтов.
void writeLong(long v)
Записывает в выходной поток значение long, состоящее из восьми байтов.
void writeShort(int v)
Записывает в выходной поток два байта, представляющих значение аргумента.
void writeUTF(String s)
Записывает в выходной поток два байта с информацией о длине, а затем модифицированное представление в формате UTF-8 каждого символа строки s.

Подробное описание методов

write

void write(int b) throws IOException
Записывает в выходной поток восемь младших битов аргумента b. 24 старших бита b игнорируются.
Параметры:
b — байт для записи.
Исключения:
IOException — если произошла ошибка ввода-вывода.

write

void write(byte[] b) throws IOException
Записывает в выходной поток все байты массива b. Если b равно null, выбрасывается NullPointerException. Если b.length равно нулю, байты не записываются. В противном случае сначала записывается байт b[0], затем b[1] и так далее; последним записывается байт b[b.length-1].
Параметры:
b — данные.
Исключения:
IOException — если произошла ошибка ввода-вывода.

write

void write(byte[] b, int off, int len) throws IOException
Записывает len байт из массива b в выходной поток по порядку. Если b равно null, выбрасывается NullPointerException. Если off отрицательно, или len отрицательно, или off+len больше длины массива b, выбрасывается IndexOutOfBoundsException. Если len равно нулю, байты не записываются. В противном случае сначала записывается байт b[off], затем b[off+1] и так далее; последним записывается байт b[off+len-1].
Параметры:
b — данные.
off — начальное смещение в данных.
len — количество байтов для записи.
Исключения:
IOException — если произошла ошибка ввода-вывода.
IndexOutOfBoundsException — если off отрицательно, len отрицательно или len больше b.length - off

writeBoolean

void writeBoolean(boolean v) throws IOException
Записывает значение boolean в этот выходной поток. Если аргумент v равен true, записывается значение (byte)1; если v равен false, записывается значение (byte)0. Байт, записанный этим методом, может быть прочитан методом readBoolean интерфейса DataInput, который вернет значение boolean, равное v.
Параметры:
v — значение boolean для записи.
Исключения:
IOException — если произошла ошибка ввода-вывода.

writeByte

void writeByte(int v) throws IOException
Записывает в выходной поток восемь младших битов аргумента v. 24 старших бита v игнорируются. (Это означает, что writeByte выполняет для аргумента типа integer ровно то же самое, что и write.) Байт, записанный этим методом, может быть прочитан методом readByte интерфейса DataInput, который вернет значение byte, равное (byte)v.
Параметры:
v — значение byte для записи.
Исключения:
IOException — если произошла ошибка ввода-вывода.

writeShort

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

Байты, записанные этим методом, могут быть прочитаны методом readShort интерфейса DataInput, который вернет значение short, равное (short)v.

Параметры:
v — значение short для записи.
Исключения:
IOException — если произошла ошибка ввода-вывода.

writeChar

void writeChar(int v) throws IOException
Записывает в выходной поток значение char, состоящее из двух байтов. Записываемые значения байтов в указанном порядке:
(byte)(0xff & (v >> 8))
(byte)(0xff & v)

Байты, записанные этим методом, могут быть прочитаны методом readChar интерфейса DataInput, который вернет значение char, равное (char)v.

Параметры:
v — значение char для записи.
Исключения:
IOException — если произошла ошибка ввода-вывода.

writeInt

void writeInt(int v) throws IOException
Записывает в выходной поток значение int, состоящее из четырех байтов. Записываемые значения байтов в указанном порядке:
(byte)(0xff & (v >> 24))
(byte)(0xff & (v >> 16))
(byte)(0xff & (v >>  8))
(byte)(0xff & v)

Байты, записанные этим методом, могут быть прочитаны методом readInt интерфейса DataInput, который вернет значение int, равное v.

Параметры:
v — значение int для записи.
Исключения:
IOException — если произошла ошибка ввода-вывода.

writeLong

void writeLong(long v) throws IOException
Записывает в выходной поток значение long, состоящее из восьми байтов. Записываемые значения байтов в указанном порядке:
(byte)(0xff & (v >> 56))
(byte)(0xff & (v >> 48))
(byte)(0xff & (v >> 40))
(byte)(0xff & (v >> 32))
(byte)(0xff & (v >> 24))
(byte)(0xff & (v >> 16))
(byte)(0xff & (v >>  8))
(byte)(0xff & v)

Байты, записанные этим методом, могут быть прочитаны методом readLong интерфейса DataInput, который вернет значение long, равное v.

Параметры:
v — значение long для записи.
Исключения:
IOException — если произошла ошибка ввода-вывода.

writeFloat

void writeFloat(float v) throws IOException
Записывает в выходной поток значение float, состоящее из четырех байтов. Это выполняется так, как если бы сначала это значение float преобразовывалось в int точно так же, как в методе Float.floatToIntBits, а затем значение int записывалось точно так же, как в методе writeInt. Байты, записанные этим методом, могут быть прочитаны методом readFloat интерфейса DataInput, который вернет значение float, равное v.
Параметры:
v — значение float для записи.
Исключения:
IOException — если произошла ошибка ввода-вывода.

writeDouble

void writeDouble(double v) throws IOException
Записывает в выходной поток значение double, состоящее из восьми байтов. Это выполняется так, как если бы сначала это значение double преобразовывалось в long точно так же, как в методе Double.doubleToLongBits, а затем значение long записывалось точно так же, как в методе writeLong. Байты, записанные этим методом, могут быть прочитаны методом readDouble интерфейса DataInput, который вернет значение double, равное v.
Параметры:
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. Старшие восемь битов каждого символа строки игнорируются.

Параметры:
s — строка байтов для записи.
Исключения:
IOException — если произошла ошибка ввода-вывода.

writeChars

void writeChars(String s) throws IOException
Записывает в выходной поток каждый символ строки s по порядку, по два байта на символ. Если s равно null, выбрасывается NullPointerException. Если s.length равно нулю, символы не записываются. В противном случае сначала записывается символ s[0], затем s[1] и так далее; последним записывается символ s[s.length-1]. Для каждого символа фактически записываются два байта — сначала старший — точно так же, как в методе writeChar.
Параметры:
s — строковое значение для записи.
Исключения:
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 одним, двумя или тремя байтами.

Байты, записанные этим методом, могут быть прочитаны методом readUTF интерфейса DataInput, который вернет значение String, равное s.

Параметры:
s — строковое значение для записи.
Исключения:
IOException — если произошла ошибка ввода-вывода.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков с концептуальными обзорами, определениями терминов, обходными решениями и примерами работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.base/java/io/DataOutput.html

Spec-Zone.ru

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