Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface DataInput
DataInput
интерфейс предусматривает чтение байтов от двоичного потока и восстановления от них данные в любых из типов примитивов Java. Есть также средство для того, чтобы восстановить a String
от данных в измененном формате UTF-8. Это обычно верно для всех подпрограмм чтения в этом интерфейсе, что, если конец файла достигается прежде, чем требуемое число байтов было считано, EOFException
(который является своего рода IOException
) бросается. Если какой-либо байт не может быть считан ни по какой причине кроме конца файла, IOException
кроме EOFException
бросается. В частности IOException
может быть брошен, если входной поток был закрыт.
Реализации интерфейсов DataInput и DataOutput представляют строки Unicode в формате, который является небольшой модификацией UTF-8. (Для получения информации относительно стандартного формата UTF-8, см. раздел 3.9 Формы Кодирования Unicode Стандарта Unicode, Версии 4.0). Отметьте, что в следующих таблицах, старший значащий бит появляется в далеком левом столбце.
Все символы в диапазоне '\u0001'
к '\u007F'
представляются единственным байтом:
Битовые значения Байт 1
0 биты 6-0
Нулевой символ '\u0000'
и символы в диапазоне '\u0080'
к '\u07FF'
представляются парой байтов:
Битовые значения Байт 1
1 1 0 биты 10-6 Байт 2
1 0 биты 5-0
char
значения в диапазоне '\u0800'
к '\uFFFF'
представляются на три байта:
Битовые значения Байт 1
1 1 1 0 биты 15-12 Байт 2
1 0 биты 11-6 Байт 3
1 0 биты 5-0
Различиями между этим форматом и стандартным форматом UTF-8 является следующее:
'\u0000'
кодируется в 2-байтовом формате, а не 1 байт, так, чтобы закодированные строки никогда не встраивали, обнуляет. DataInputStream
, DataOutput
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
readBoolean()
Чтения один входной байт и возвраты
true если тот байт является ненулевым, false если тот байт является нулем. |
byte |
readByte()
Чтения и возвраты один входной байт.
|
char |
readChar()
Чтения два входных байта и возвраты a
char значение. |
double |
readDouble()
Чтения восемь входных байтов и возвраты a
double значение. |
float |
readFloat()
Чтения четыре входных байта и возвраты a
float значение. |
void |
readFully(byte[] b)
Чтения некоторые байты от входного потока и хранят их в буферный массив
b . |
void |
readFully(byte[] b, int off, int len)
Чтения
len байты от входного потока. |
int |
readInt()
Чтения четыре входных байта и возвраты
int значение. |
Строка |
readLine()
Читает следующую строку текста от входного потока.
|
long |
readLong()
Чтения восемь входных байтов и возвраты a
long значение. |
short |
readShort()
Чтения два входных байта и возвраты a
short значение. |
int |
readUnsignedByte()
Чтения один входной байт, нуль - расширяет это, чтобы ввести
int , и возвращает результат, который находится поэтому в диапазоне 0 через 255 . |
int |
readUnsignedShort()
Чтения два входных байта и возвраты
int значение в диапазоне 0 через 65535 . |
Строка |
readUTF()
Чтения в строке, которая была закодирована, используя измененный формат UTF-8.
|
int |
skipBytes(int n)
Предпринимает попытку перескочить
n байты данных от входного потока, отбрасывая пропущенные байты. |
void readFully(byte[] b) throws IOException
b
. Число чтения байтов равно длине b
. Этот метод блоки до одного из следующих условий происходит:
b.length
байты входных данных доступны, когда нормальный возврат делается. EOFException
бросается. IOException
кроме EOFException
бросается. Если b
null
, a NullPointerException
бросается. Если b.length
нуль, тогда никакие байты не читаются. Иначе, первое побайтовое чтение сохранено в элемент b[0]
, следующий в b[1]
, и так далее. Если исключение выдается от этого метода, то может случиться так что некоторые, но не все байты b
были обновлены с данными от входного потока.
b
- буфер, в который читаются данные.EOFException
- если этот поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.void readFully(byte[] b, int off, int len) throws IOException
len
байты от входного потока. Этот метод блоки до одного из следующих условий происходит:
len
байты входных данных доступны, когда нормальный возврат делается. EOFException
бросается. IOException
кроме EOFException
бросается. Если b
null
, a NullPointerException
бросается. Если off
отрицательно, или len
отрицательно, или off+len
больше чем длина массива b
, тогда IndexOutOfBoundsException
бросается. Если len
нуль, тогда никакие байты не читаются. Иначе, первое побайтовое чтение сохранено в элемент b[off]
, следующий в b[off+1]
, и так далее. Число чтения байтов, самое большее, равно len
.
b
- буфер, в который читаются данные.off
- интервал, определяющий смещение в данные.len
- интервал, определяющий число байтов, чтобы читать.EOFException
- если этот поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.int skipBytes(int n) throws IOException
n
байты данных от входного потока, отбрасывая пропущенные байты. Однако, это может перескочить через некоторое меньшее число байтов, возможно обнулить. Это может следовать из любого из многих условий; достижение конца файла прежде n
байты были пропущены, только одна возможность. Этот метод никогда не бросает EOFException
. Фактическое число пропущенных байтов возвращается.n
- число байтов, которые будут пропущены.IOException
- если ошибка ввода-вывода происходит.boolean readBoolean() throws IOException
true
если тот байт является ненулевым, false
если тот байт является нулем. Этот метод является подходящим для того, чтобы считать байт, записанный writeBoolean
метод интерфейса DataOutput
.boolean
значение читало.EOFException
- если этот поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.byte readByte() throws IOException
-128
через 127
, включительно. Этот метод является подходящим для того, чтобы считать байт, записанный writeByte
метод интерфейса DataOutput
.EOFException
- если этот поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.int readUnsignedByte() throws IOException
int
, и возвращает результат, который находится поэтому в диапазоне 0
через 255
. Этот метод является подходящим для того, чтобы считать байт, записанный writeByte
метод интерфейса DataOutput
если параметр writeByte
был предназначен, чтобы быть значением в диапазоне 0
через 255
.EOFException
- если этот поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.short readShort() throws IOException
short
значение. Позволить a
будьте первым побайтовым чтением и b
будьте вторым байтом. Возвращенное значение: (short)((a << 8) | (b & 0xff))
Этот метод является подходящим для того, чтобы считать байты, записанные writeShort
метод интерфейса DataOutput
.EOFException
- если этот поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.int readUnsignedShort() throws IOException
int
значение в диапазоне 0
через 65535
. Позволить a
будьте первым побайтовым чтением и b
будьте вторым байтом. Возвращенное значение: (((a & 0xff) << 8) | (b & 0xff))
Этот метод является подходящим для того, чтобы считать байты, записанные writeShort
метод интерфейса DataOutput
если параметр writeShort
был предназначен, чтобы быть значением в диапазоне 0
через 65535
.EOFException
- если этот поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.char readChar() throws IOException
char
значение. Позволить a
будьте первым побайтовым чтением и b
будьте вторым байтом. Возвращенное значение: (char)((a << 8) | (b & 0xff))
Этот метод является подходящим для того, чтобы считать байты, записанные writeChar
метод интерфейса DataOutput
.char
значение читало.EOFException
- если этот поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.int readInt() throws IOException
int
значение. Позволить a-d
будьте первыми посредством четвертого чтения байтов. Возвращенное значение:
(((a & 0xff) << 24) | ((b & 0xff) << 16) |
((c & 0xff) << 8) | (d & 0xff))
Этот метод является подходящим для того, чтобы считать байты, записанные writeInt
метод интерфейса DataOutput
.int
значение читало.EOFException
- если этот поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.long readLong() throws IOException
long
значение. Позволить a-h
будьте первыми посредством восьмого чтения байтов. Возвращенное значение:
(((long)(a & 0xff) << 56) |
((long)(b & 0xff) << 48) |
((long)(c & 0xff) << 40) |
((long)(d & 0xff) << 32) |
((long)(e & 0xff) << 24) |
((long)(f & 0xff) << 16) |
((long)(g & 0xff) << 8) |
((long)(h & 0xff)))
Этот метод является подходящим для того, чтобы считать байты, записанные writeLong
метод интерфейса DataOutput
.
long
значение читало.EOFException
- если этот поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.float readFloat() throws IOException
float
значение. Это делает это первым построением int
значение точно способом readInt
метод, затем преобразовывая это int
оцените a float
точно способом метода Float.intBitsToFloat
. Этот метод является подходящим для того, чтобы считать байты, записанные writeFloat
метод интерфейса DataOutput
.float
значение читало.EOFException
- если этот поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.double readDouble() throws IOException
double
значение. Это делает это первым построением a long
значение точно способом readlong
метод, затем преобразовывая это long
оцените a double
точно способом метода Double.longBitsToDouble
. Этот метод является подходящим для того, чтобы считать байты, записанные writeDouble
метод интерфейса DataOutput
.double
значение читало.EOFException
- если этот поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.String readLine() throws IOException
String
. Отметьте, что, потому что этот метод обрабатывает байты, он не поддерживает ввод полного набора символов Unicode. Если с концом файла встречаются прежде, чем даже один байт может быть считан, то null
возвращается. Иначе, каждый байт, который читается, преобразовывается в тип char
дополнением нулями. Если символ '\n'
встречается, это отбрасывается, и чтение прекращается. Если символ '\r'
встречается, это отбрасывается и, если следующий байт преобразовывает в символ '\n'
, тогда это отбрасывается также; чтение тогда прекращается. Если с концом файла встречаются перед любым из символов '\n'
и '\r'
встречается, чтение прекращается. Как только чтение прекратилось, a String
возвращается, который содержит все чтение символов и не отброшенный, взятый в порядке. Отметьте, что у каждого символа в этой строке будет значение меньше чем \u0100
, то есть, (char)256
.
null
если с концом файла встречаются прежде, чем байт может быть считан.IOException
- если ошибка ввода-вывода происходит.String readUTF() throws IOException
readUTF
это, это читает представление символьной строки Unicode, закодированной в измененном формате UTF-8; эта строка символов тогда возвращается как a String
. Во-первых, два байта читаются и используются, чтобы создать 16-разрядное целое число без знака точно способом readUnsignedShort
метод. Это целочисленное значение вызывают длиной UTF и определяет число дополнительных байтов, которые будут считаны. Эти байты тогда преобразовываются в символы, рассматривая их в группах. Длина каждой группы вычисляется от значения первого байта группы. Байт после группы, если таковые вообще имеются, является первым байтом следующей группы.
Если первый байт группы соответствует комбинацию двоичных разрядов 0xxxxxxx
(где x
означает, "может быть 0
или 1
"), тогда группа состоит из только того байта. Байт расширяется до нуля, чтобы сформировать символ.
Если первый байт группы соответствует комбинацию двоичных разрядов 110xxxxx
, тогда группа состоит из того байта a
и второй байт b
. Если нет никакого байта b
(потому что байт a
был последний из байтов, которые будут считаны), или если байт b
не соответствует комбинацию двоичных разрядов 10xxxxxx
, тогда a UTFDataFormatException
бросается. Иначе, группа преобразовывается в символ:
(char)(((a& 0x1F) << 6) | (b & 0x3F))
Если первый байт группы соответствует комбинацию двоичных разрядов 1110xxxx
, тогда группа состоит из того байта a
и еще два байта b
и c
. Если нет никакого байта c
(потому что байт a
был один из последних двух из байтов, которые будут считаны), или любой байт b
или байт c
не соответствует комбинацию двоичных разрядов 10xxxxxx
, тогда a UTFDataFormatException
бросается. Иначе, группа преобразовывается в символ:
(char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
Если первый байт группы соответствует образец 1111xxxx
или образец 10xxxxxx
, тогда a UTFDataFormatException
бросается. Если с концом файла встречаются в любое время во время этого всего процесса, то EOFException
бросается.
После того, как каждая группа была преобразована в символ этим процессом, символы собираются в том же самом порядке, в котором их соответствующие группы были считаны из входного потока, чтобы сформировать a String
, который возвращается.
writeUTF
метод интерфейса DataOutput
может использоваться, чтобы записать данные, которые являются подходящими для того, чтобы читать этим методом.
EOFException
- если этот поток достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.UTFDataFormatException
- если байты не представляют допустимое измененное кодирование UTF-8 строки.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92