Класс 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 не обязательно безопасен для многопоточного доступа. Безопасность потоков необязательна и является ответственностью пользователей методов в этом классе.
- С момента:
- 1.0
- См. также:
DataOutputStream
Поля
Поля, объявленные в классе java.io.FilterInputStream
in Конструкторы
| Конструктор | Описание |
|---|---|
DataInputStream(InputStream in) | Создает DataInputStream, использующий указанный базовый InputStream. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
int | read(byte[] b) | Считывает некоторое количество байтов из содержащегося потока ввода и сохраняет их в массив байтов |
int | read(byte[] b,
int off,
int len) | Считывает до |
boolean | readBoolean() | См. общее соглашение метода |
byte | readByte() | См. общее соглашение метода |
char | readChar() | См. общее соглашение метода |
double | readDouble() | См. общее соглашение метода |
float | readFloat() | См. общее соглашение метода |
void | readFully(byte[] b) | См. общее соглашение метода |
void | readFully(byte[] b,
int off,
int len) | См. общее соглашение метода |
int | readInt() | См. общее соглашение метода |
String | readLine() | Устаревшее. Этот метод неправильно преобразует байты в символы. |
long | readLong() | См. общее соглашение метода |
short | readShort() | См. общее соглашение метода |
int | readUnsignedByte() | См. общее соглашение метода |
int | readUnsignedShort() | См. общее соглашение метода |
String | readUTF() | См. общее соглашение метода |
static String | readUTF(DataInput in) | Считывает из потока |
int | skipBytes(int n) | См. общее соглашение метода |
Методы, объявленные в классе java.io.FilterInputStream
available, close, mark, markSupported, read, reset, skip Методы, объявленные в классе java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
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 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- если байты не представляют собой корректное кодирование строки в формате изменённого UTF-8. - См. также:
readUTF(java.io.DataInput)
readUTF
public static final String readUTF(DataInput in)
throws IOException Считывает из потока in представление строки Unicode, закодированной в формате изменённого UTF-8; эта строка символов затем возвращается как String. Подробности представления в формате изменённого UTF-8 точно такие же, как для метода readUTF класса DataInput.
- Параметры:
-
in- поток данных для ввода. - Возвращает:
- строку Unicode.
- Выбрасывает:
-
EOFException- если поток ввода достигает конца до чтения всех байтов. -
IOException- поток закрыт, и вложенный поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. -
UTFDataFormatException- если байты не представляют собой корректное кодирование строки Unicode в формате изменённого UTF-8. - См. также:
readUnsignedShort()
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/DataInputStream.html