Интерфейс DataOutput
- Все известные подинтерфейсы:
- ImageOutputStream, ObjectOutput
- Все известные реализующие классы:
- DataOutputStream, FileCacheImageOutputStream, FileImageOutputStream, ImageOutputStreamImpl, MemoryCacheImageOutputStream, ObjectOutputStream, RandomAccessFile
public interface DataOutput
Интерфейс DataOutput предоставляет возможность конвертировать данные из любого из примитивных типов Java в последовательность байтов и записывать эти байты в двоичный поток. Также есть возможность конвертировать String в формат модифицированного UTF-8 и записать полученную последовательность байтов.
Для всех методов в этом интерфейсе, которые записывают байты, обычно верно, что если байт не может быть записан по какой-либо причине, будет брошено исключение IOException.
- С:
- JDK1.0
- См. также:
-
DataInput,DataOutputStream
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
write(byte[] b) Записывает в выходной поток все байты в массиве |
void |
write(byte[] b,
int off,
int len) Записывает |
void |
write(int b) Записывает в выходной поток восемь младших битов аргумента |
void |
writeBoolean(boolean v) Записывает значение |
void |
writeByte(int v) Записывает в выходной поток восемь младших битов аргумента |
void |
writeBytes(String s) Записывает строку в выходной поток. |
void |
writeChar(int v) Записывает значение |
void |
writeChars(String s) Записывает каждый символ в строке |
void |
writeDouble(double v) Записывает значение |
void |
writeFloat(float v) Записывает значение |
void |
writeInt(int v) Записывает значение |
void |
writeLong(long v) Записывает значение |
void |
writeShort(int v) Записывает два байта в выходной поток для представления значения аргумента. |
void |
writeUTF(String s) Записывает два байта информации о длине в выходной поток, за которыми следует представление модифицированного UTF-8 каждого символа в строке |
Методы
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.
- Параметры:
-
s- строковое значение для записи. - Исключения:
-
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.