Класс DataInputStream
- Все реализованные интерфейсы:
-
Closeable,DataInput,AutoCloseable
public class DataInputStream extends FilterInputStream implements DataInput
Класс DataInputStream не является потокобезопасным. Если DataInputStream будет использоваться более чем одной нитью, доступ к потоку ввода данных должен контролироваться соответствующей синхронизацией.
- С тех пор:
- 1.0
- См. также:
Краткое описание полей
Поля, объявленные в классе java.io.FilterInputStream
in
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
DataInputStream |
Создаёт DataInputStream, использующий указанный базовый InputStream. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final int |
read |
Читает некоторое количество байтов из содержащего потока ввода и сохраняет их в массив байтов b. |
final int |
read |
Читает до 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 |
См. общее соглашение метода readFully класса DataInput. |
final void |
readFully |
См. общее соглашение метода 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 |
Считывает из потока in представление строки Unicode символов, закодированных в формате изменённого UTF-8; эта строка символов возвращается как String. |
final int |
skipBytes |
См. общее соглашение метода skipBytes класса DataInput. |
Методы, объявленные в классе java.io.FilterInputStream
available, close, mark, markSupported, read, reset, skip
Методы, объявленные в классе java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
Подробное описание конструкторов
DataInputStream
public DataInputStream(InputStream in)
- Параметры:
-
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- если первый байт не может быть прочитан по какой-либо причине, кроме конца файла, поток закрыт, и базовый поток ввода не поддерживает чтение после закрытия, или возникает другая ошибка ввода-вывода. - См. также:
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- если первый байт не может быть прочитан по какой-либо причине, кроме конца файла, поток закрыт, и базовый поток ввода не поддерживает чтение после закрытия, или возникает другая ошибка ввода-вывода. - См. также:
readFully
public final void readFully(byte[] b) throws IOException
readFully класса DataInput. Байты для этой операции считываются из содержащегося потока ввода.
- Определено в:
-
readFullyв интерфейсеDataInput - Параметры:
-
b- буфер, в который считываются данные. - Исключение:
-
NullPointerException- еслиbравноnull. -
EOFException- если этот поток ввода достигает конца до чтения всех байтов. -
IOException- поток закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. - См. также:
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- поток закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. - См. также:
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- поток закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. - См. также:
readByte
public final byte readByte() throws IOException
readByte класса DataInput. Байты для этой операции считываются из содержащегося потока ввода.
- Определено в:
-
readByteв интерфейсеDataInput - Возвращает:
- следующий байт этого потока ввода как знаковое 8-битовое
byte. - Исключение:
-
EOFException- если этот поток ввода достиг конца. -
IOException- поток закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. - См. также:
readUnsignedByte
public final int readUnsignedByte() throws IOException
readUnsignedByte класса DataInput. Байты для этой операции считываются из содержащегося потока ввода.
- Определено в:
-
readUnsignedByteв интерфейсеDataInput - Возвращает:
- следующий байт этого потока ввода, интерпретированный как беззнаковое 8-битовое число.
- Исключение:
-
EOFException- если этот поток ввода достиг конца. -
IOException- поток закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. - См. также:
readShort
public final short readShort() throws IOException
readShort класса DataInput. Байты для этой операции считываются из содержащегося потока ввода.
- Указано:
-
readShortв интерфейсеDataInput - Возвращает:
- следующие два байта этого потока ввода, интерпретированные как знаковое 16-битное число.
- Выбрасывает:
-
EOFException- если этот поток ввода достигает конца перед чтением двух байтов. -
IOException- поток был закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. - См. также:
readUnsignedShort
public final int readUnsignedShort() throws IOException
readUnsignedShort класса DataInput. Байты для этой операции считываются из содержащегося потока ввода.
- Указано:
-
readUnsignedShortв интерфейсеDataInput - Возвращает:
- следующие два байта этого потока ввода, интерпретированные как целое беззнаковое 16-битное число.
- Выбрасывает:
-
EOFException- если этот поток ввода достигает конца перед чтением двух байтов. -
IOException- поток был закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. - См. также:
readChar
public final char readChar() throws IOException
readChar класса DataInput. Байты для этой операции считываются из содержащегося потока ввода.
- Указано:
-
readCharв интерфейсеDataInput - Возвращает:
- следующие два байта этого потока ввода, интерпретированные как символ.
- Выбрасывает:
-
EOFException- если этот поток ввода достигает конца перед чтением двух байтов. -
IOException- поток был закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. - См. также:
readInt
public final int readInt() throws IOException
readInt класса DataInput. Байты для этой операции считываются из содержащегося потока ввода.
- Указано:
-
readIntв интерфейсеDataInput - Возвращает:
- следующие четыре байта этого потока ввода, интерпретированные как целое число.
- Выбрасывает:
-
EOFException- если этот поток ввода достигает конца перед чтением четырёх байтов. -
IOException- поток был закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. - См. также:
readLong
public final long readLong() throws IOException
readLong класса DataInput. Байты для этой операции считываются из содержащегося потока ввода.
- Указано:
-
readLongв интерфейсеDataInput - Возвращает:
- следующие восемь байт этого потока ввода, интерпретированные как длинное целое число.
- Выбрасывает:
-
EOFException- если этот поток ввода достигает конца перед чтением восьми байтов. -
IOException- поток был закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. - См. также:
readFloat
public final float readFloat() throws IOException
readFloat класса DataInput. Байты для этой операции считываются из содержащегося потока ввода.
- Указано:
-
readFloatв интерфейсеDataInput - Возвращает:
- следующие четыре байта этого потока ввода, интерпретированные как число с плавающей точкой.
- Выбрасывает:
-
EOFException- если этот поток ввода достигает конца перед чтением четырёх байтов. -
IOException- поток был закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. - См. также:
readDouble
public final double readDouble() throws IOException
readDouble класса DataInput. Байты для этой операции считываются из содержащегося потока ввода.
- Указано:
-
readDoubleв интерфейсеDataInput - Возвращает:
- следующие восемь байт этого потока ввода, интерпретированные как двойное число с плавающей точкой.
- Выбрасывает:
-
EOFException- если этот поток ввода достигает конца перед чтением восьми байтов. -
IOException- поток был закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. - См. также:
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- если произошла ошибка ввода-вывода. - См. также:
readUTF
public final String readUTF() throws IOException
readUTF класса DataInput. Байты для этой операции считываются из содержащегося потока ввода.
- Указано:
-
readUTFв интерфейсеDataInput - Возвращает:
- строку Unicode.
- Выбрасывает:
-
EOFException- если этот поток ввода достигает конца перед чтением всех байтов. -
IOException- поток был закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. -
UTFDataFormatException- если байты не представляют собой правильное кодирование строки в формате модифицированного UTF-8. - См. также:
readUTF
public static final String readUTF(DataInput in) throws IOException
in представление строки символов Unicode, закодированной в формате модифицированного UTF-8; эта строка символов возвращается как строка.- Параметры:
-
in- поток ввода данных. - Возвращает:
- строка Unicode.
- Выбрасывает:
-
EOFException- если поток ввода достигает конца перед чтением всех байтов. -
IOException- поток был закрыт, и содержащийся поток ввода не поддерживает чтение после закрытия, или произошла другая ошибка ввода-вывода. -
UTFDataFormatException- если байты не представляют собой правильное кодирование строки Unicode в формате модифицированного UTF-8. - См. также:
© 1993, 2023, 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/21/docs/api/java.base/java/io/DataInputStream.html