Spec-Zone.ru › OpenJDK 17

Интерфейс 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 - если произошла ошибка ввода-вывода.

writeBoolean

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

writeByte

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

Parameters:
s - значение строки, которое нужно записать.
Throws:
IOException - если произошла ошибка ввода-вывода.

© 1993, 2021, 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/17/docs/api/java.base/java/io/DataOutput.html

Spec-Zone.ru

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