Spec-Zone.ru › OpenJDK 27

Класс DataInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.io.DataInputStream
Все реализованные интерфейсы:
Closeable, DataInput, AutoCloseable
public class DataInputStream extends FilterInputStream implements DataInput
Поток ввода данных позволяет приложению считывать примитивные типы данных Java из базового входного потока независимым от платформы способом. Приложение использует поток вывода данных для записи данных, которые впоследствии могут быть прочитаны потоком ввода данных.

Объект DataInputStream небезопасно использовать в нескольких параллельных потоках. Если объект DataInputStream используется более чем одним потоком, доступ к потоку ввода данных следует контролировать с помощью соответствующей синхронизации.

Начиная с:
1.0
См. также:
  • DataOutputStream

Краткое описание полей

Поля, объявленные в классе FilterInputStream

in
Модификатор и тип Поле Описание
protected InputStream in
Входной поток, подлежащий фильтрации.

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

Конструктор Описание
DataInputStream(InputStream in)
Создает DataInputStream, использующий указанный базовый InputStream.

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

Модификатор и тип Метод Описание
final int read(byte[] b)
Считывает некоторое количество байтов из содержащегося входного потока и сохраняет их в массиве буфера b.
final int read(byte[] b, int off, int len)
Считывает до len байтов данных из содержащегося входного потока в массив байтов.
final boolean readBoolean()
См. общий контракт метода readBoolean класса DataInput.
final byte readByte()
См. общий контракт метода readByte класса DataInput.
final char readChar()
См. общий контракт метода readChar класса DataInput.
final double readDouble()
См. общий контракт метода readDouble класса DataInput.
final float readFloat()
См. общий контракт метода readFloat класса DataInput.
final void readFully(byte[] b)
См. общий контракт метода readFully класса DataInput.
final void readFully(byte[] b, int off, int len)
См. общий контракт метода readFully класса DataInput.
final int readInt()
См. общий контракт метода readInt класса DataInput.
final String readLine()
Устарело.
Этот метод неправильно преобразует байты в символы.
final long readLong()
См. общий контракт метода readLong класса DataInput.
final short readShort()
См. общий контракт метода readShort класса DataInput.
final int readUnsignedByte()
См. общий контракт метода readUnsignedByte класса DataInput.
final int readUnsignedShort()
См. общий контракт метода readUnsignedShort класса DataInput.
final String readUTF()
См. общий контракт метода readUTF класса DataInput.
static final String readUTF(DataInput in)
Считывает из потока in представление строки символов Unicode, закодированной в формате модифицированного UTF-8; затем эта строка символов возвращается как String.
final int skipBytes(int n)
См. общий контракт метода skipBytes класса DataInput.

Методы, объявленные в классе FilterInputStream

available, close, mark, markSupported, read, reset, skip
Модификатор и тип Метод Описание
int available()
Возвращает оценку количества байтов, которые могут быть прочитаны (или пропущены) из этого входного потока без блокировки следующим вызовом метода для этого входного потока.
void close()
Закрывает этот входной поток и освобождает все системные ресурсы, связанные с ним.
void mark(int readlimit)
Отмечает текущую позицию в этом входном потоке.
boolean markSupported()
Проверяет, поддерживает ли этот входной поток методы mark и reset.
int read()
Считывает следующий байт данных из входного потока.
void reset()
Перемещает этот поток в позицию, соответствовавшую моменту последнего вызова метода mark для этого входного потока.
long skip(long n)
Пропускает и отбрасывает n байтов данных из входного потока.

Методы, объявленные в классе InputStream

nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
Модификатор и тип Метод Описание
static InputStream nullInputStream()
Возвращает новый InputStream, который не считывает байтов.
byte[] readAllBytes()
Считывает все оставшиеся байты из входного потока.
int readNBytes(byte[] b, int off, int len)
Считывает из входного потока запрошенное количество байтов в указанный массив байтов.
byte[] readNBytes(int len)
Считывает из входного потока до указанного количества байтов.
void skipNBytes(long n)
Пропускает и отбрасывает ровно n байтов данных из этого входного потока.
long transferTo(OutputStream out)
Считывает все байты из этого входного потока и записывает их в указанный выходной поток в том порядке, в котором они считываются.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

DataInputStream

public DataInputStream(InputStream in)
Создает DataInputStream, использующий указанный базовый InputStream.
Параметры:
in — указанный входной поток

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

read

public final int read(byte[] b) throws IOException
Считывает некоторое количество байтов из содержащегося входного потока и сохраняет их в массиве буфера b. Фактически считанное количество байтов возвращается в виде целого числа. Этот метод блокируется до тех пор, пока не станут доступны входные данные, не будет обнаружен конец файла или не возникнет исключение.

Если b равно null, выбрасывается NullPointerException. Если длина b равна нулю, байты не считываются и возвращается 0; в противном случае предпринимается попытка считать хотя бы один байт. Если байты недоступны, поскольку поток достиг конца файла, возвращается значение -1; в противном случае считывается хотя бы один байт и сохраняется в b.

Первый считанный байт сохраняется в элементе b[0], следующий — в b[1] и так далее. Количество считанных байтов не превышает длину b. Пусть k — количество фактически считанных байтов; эти байты будут сохранены в элементах от b[0] до b[k-1], а элементы от b[k] до b[b.length-1] останутся без изменений.

Метод read(b) действует так же, как:

read(b, 0, b.length)
Переопределяет:
read в классе FilterInputStream
Параметры:
b — буфер, в который считываются данные.
Возвращает:
общее количество байтов, считанных в буфер, или -1, если данных больше нет, поскольку достигнут конец потока.
Выбрасывает:
IOException — если первый байт не удается считать по любой причине, кроме конца файла, поток закрыт, а базовый входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • FilterInputStream.in
  • InputStream.read(byte[], int, int)

read

public final int read(byte[] b, int off, int len) throws IOException
Считывает из содержащегося входного потока в массив байтов не более len байтов данных. Предпринимается попытка считать до len байтов, однако может быть считано меньшее количество, в том числе ноль. Фактически считанное количество байтов возвращается в виде целого числа.

Этот метод блокируется до тех пор, пока не станут доступны входные данные, не будет обнаружен конец файла или не возникнет исключение.

Если len равно нулю, байты не считываются и возвращается 0; в противном случае предпринимается попытка считать хотя бы один байт. Если байты недоступны, поскольку поток достиг конца файла, возвращается значение -1; в противном случае считывается хотя бы один байт и сохраняется в b.

Первый считанный байт сохраняется в элементе b[off], следующий — в b[off+1] и так далее. Количество считанных байтов не превышает len. Пусть k — количество фактически считанных байтов; эти байты будут сохранены в элементах от b[off] до b[off+k-1], а элементы от b[off+k] до b[off+len-1] останутся без изменений.

В любом случае элементы от b[0] до b[off] и элементы от b[off+len] до b[b.length-1] остаются без изменений.

Переопределяет:
read в классе FilterInputStream
Параметры:
b — буфер, в который считываются данные.
off — начальное смещение в целевом массиве b
len — максимальное количество считываемых байтов.
Возвращает:
общее количество байтов, считанных в буфер, или -1, если данных больше нет, поскольку достигнут конец потока.
Выбрасывает:
NullPointerException — если b равно null.
IndexOutOfBoundsException — если off отрицательно, len отрицательно или len больше b.length - off
IOException — если первый байт не удается считать по любой причине, кроме конца файла, поток закрыт, а базовый входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • FilterInputStream.in
  • InputStream.read(byte[], int, int)

readFully

public final void readFully(byte[] b) throws IOException
См. общий контракт метода readFully интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readFully в интерфейсе DataInput
Параметры:
b — буфер, в который считываются данные.
Выбрасывает:
NullPointerException — если b равно null.
EOFException — если этот входной поток достигает конца до считывания всех байтов.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • FilterInputStream.in

readFully

public final void readFully(byte[] b, int off, int len) throws IOException
См. общий контракт метода readFully интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readFully в интерфейсе DataInput
Параметры:
b — буфер, в который считываются данные.
off — начальное смещение в массиве данных b.
len — количество байтов для считывания.
Выбрасывает:
NullPointerException — если b равно null.
IndexOutOfBoundsException — если off отрицательно, len отрицательно или len больше b.length - off.
EOFException — если этот входной поток достигает конца до считывания всех байтов.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • FilterInputStream.in

skipBytes

public final int skipBytes(int n) throws IOException
См. общий контракт метода skipBytes интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
skipBytes в интерфейсе DataInput
Параметры:
n — количество байтов, которое необходимо пропустить.
Возвращает:
фактическое количество пропущенных байтов.
Выбрасывает:
IOException — если содержащийся входной поток не поддерживает перемещение, поток закрыт и содержащийся входной поток не поддерживает чтение после закрытия либо возникает другая ошибка ввода-вывода.

readBoolean

public final boolean readBoolean() throws IOException
См. общий контракт метода readBoolean интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readBoolean в интерфейсе DataInput
Возвращает:
считанное значение boolean.
Выбрасывает:
EOFException — если этот входной поток достиг конца.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • FilterInputStream.in

readByte

public final byte readByte() throws IOException
См. общий контракт метода readByte интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readByte в интерфейсе DataInput
Возвращает:
следующий байт этого входного потока в виде знакового 8-битного значения byte.
Выбрасывает:
EOFException — если этот входной поток достиг конца.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • FilterInputStream.in

readUnsignedByte

public final int readUnsignedByte() throws IOException
См. общий контракт метода readUnsignedByte интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readUnsignedByte в интерфейсе DataInput
Возвращает:
следующий байт этого входного потока, интерпретируемый как беззнаковое 8-битное число.
Выбрасывает:
EOFException — если этот входной поток достиг конца.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • FilterInputStream.in

readShort

public final short readShort() throws IOException
См. общий контракт метода readShort интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readShort в интерфейсе DataInput
Возвращает:
следующие два байта этого входного потока, интерпретируемые как знаковое 16-битное число.
Выбрасывает:
EOFException — если этот входной поток достигает конца до считывания двух байтов.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • FilterInputStream.in

readUnsignedShort

public final int readUnsignedShort() throws IOException
См. общий контракт метода readUnsignedShort интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readUnsignedShort в интерфейсе DataInput
Возвращает:
следующие два байта этого входного потока, интерпретируемые как беззнаковое 16-битное целое число.
Выбрасывает:
EOFException — если этот входной поток достигает конца до считывания двух байтов.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • FilterInputStream.in

readChar

public final char readChar() throws IOException
См. общий контракт метода readChar интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readChar в интерфейсе DataInput
Возвращает:
следующие два байта этого входного потока, интерпретируемые как char.
Выбрасывает:
EOFException — если этот входной поток достигает конца до считывания двух байтов.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • FilterInputStream.in

readInt

public final int readInt() throws IOException
См. общий контракт метода readInt интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readInt в интерфейсе DataInput
Возвращает:
следующие четыре байта этого входного потока, интерпретируемые как int.
Выбрасывает:
EOFException — если этот входной поток достигает конца до считывания четырех байтов.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • FilterInputStream.in

readLong

public final long readLong() throws IOException
См. общий контракт метода readLong интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readLong в интерфейсе DataInput
Возвращает:
следующие восемь байтов этого входного потока, интерпретируемые как long.
Выбрасывает:
EOFException — если этот входной поток достигает конца до считывания восьми байтов.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • FilterInputStream.in

readFloat

public final float readFloat() throws IOException
См. общий контракт метода readFloat интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readFloat в интерфейсе DataInput
Возвращает:
следующие четыре байта этого входного потока, интерпретируемые как float.
Выбрасывает:
EOFException — если этот входной поток достигает конца до считывания четырех байтов.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • readInt()
  • Float.intBitsToFloat(int)

readDouble

public final double readDouble() throws IOException
См. общий контракт метода readDouble интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readDouble в интерфейсе DataInput
Возвращает:
следующие восемь байтов этого входного потока, интерпретируемые как double.
Выбрасывает:
EOFException — если этот входной поток достигает конца до считывания восьми байтов.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
См. также:
  • readLong()
  • Double.longBitsToDouble(long)

readLine

@Deprecated public final String readLine() throws IOException
Устарел.
Этот метод некорректно преобразует байты в символы. Начиная с JDK 1.1, предпочтительным способом чтения текстовых строк является метод BufferedReader.readLine(). Программы, использующие класс DataInputStream для чтения строк, можно преобразовать для использования класса BufferedReader, заменив код следующего вида:
    DataInputStream d = new DataInputStream(in);
на:
    BufferedReader d
         = new BufferedReader(new InputStreamReader(in));
См. общий контракт метода readLine интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readLine в интерфейсе DataInput
Возвращает:
следующую текстовую строку из этого входного потока.
Выбрасывает:
IOException — если возникает ошибка ввода-вывода.
См. также:
  • BufferedReader.readLine()
  • FilterInputStream.in

readUTF

public final String readUTF() throws IOException
См. общий контракт метода readUTF интерфейса DataInput.

Байты для этой операции считываются из содержащегося входного потока.

Определен в:
readUTF в интерфейсе DataInput
Возвращает:
строку Unicode.
Выбрасывает:
EOFException — если этот входной поток достигает конца до считывания всех байтов.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
UTFDataFormatException — если байты не представляют допустимую строку в кодировке modified UTF-8.
См. также:
  • readUTF(java.io.DataInput)

readUTF

public static final String readUTF(DataInput in) throws IOException
Считывает из потока in представление строки символов Unicode, закодированной в формате modified UTF-8, и возвращает эту строку символов в виде String. Подробности представления modified UTF-8 полностью совпадают с описанием метода readUTF интерфейса DataInput.
Параметры:
in — поток ввода данных.
Возвращает:
строку Unicode.
Выбрасывает:
EOFException — если входной поток достигает конца до считывания всех байтов.
IOException — если поток закрыт, содержащийся входной поток не поддерживает чтение после закрытия или возникает другая ошибка ввода-вывода.
UTFDataFormatException — если байты не представляют допустимую строку Unicode в кодировке modified UTF-8.
См. также:
  • readUnsignedShort()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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