IDataInput.ReadUTF Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Считывает строку, закодированную с помощью измененного формата UTF-8.
[Android.Runtime.Register("readUTF", "()Ljava/lang/String;", "GetReadUTFHandler:Java.IO.IDataInputInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public string? ReadUTF ();
[<Android.Runtime.Register("readUTF", "()Ljava/lang/String;", "GetReadUTFHandler:Java.IO.IDataInputInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member ReadUTF : unit -> string
Возвращаемое значение
строка Юникода.
- Атрибуты
Исключения
Значение , если окончание входных данных достигнуто до того, как запрос на чтение может быть удовлетворен.
Значение , если при чтении возникает ошибка ввода-вывода.
Комментарии
Считывает строку, закодированную с помощью измененного формата UTF-8. Общий контракт readUTF
заключается в том, что он считывает представление строки символов Юникода, закодированной в измененном формате UTF-8; эта строка символов затем возвращается в виде String
.
Во-первых, два байта считываются и используются для создания 16-разрядного целого числа без знака точно таким образом readUnsignedShort
метода. Это целочисленное значение называется длиной UTF и указывает количество дополнительных байтов для чтения. Затем эти байты преобразуются в символы, рассматривая их в группах. Длина каждой группы вычисляется из значения первого байта группы. Байт, следующий за группой, если таковой имеется, является первым байтом следующей группы.
Если первый байт группы соответствует битовой схеме 0xxxxxxx
(где x
означает "может быть 0
или 1
"), группа состоит только из этого байта. Байт равен нулю для формирования символа.
Если первый байт группы соответствует битовой схеме 110xxxxx
, группа состоит из этого байта a
и второго байта b
. Если байтов нет (так как байт b
a
был последним из байтов для чтения), или если b
байт не соответствует битовой схеме 10xxxxxx
, UTFDataFormatException
создается исключение. В противном случае группа преобразуется в символ:
{@code (char)(((a & 0x1F) << 6) | (b & 0x3F))
}
Если первый байт группы соответствует битовой схеме 1110xxxx
, группа состоит из этого байта a
и двух дополнительных байтов b
и c
. Если байтов нет (так как байт a
был одним из последних двух байтов для чтения), либо b
байт c
или c
байт не соответствует битовой схеме10xxxxxx
, то UTFDataFormatException
создается исключение. В противном случае группа преобразуется в символ:
{@code
(char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
}
Если первый байт группы соответствует шаблону 1111xxxx
или шаблону 10xxxxxx
, UTFDataFormatException
создается исключение.
Если конец файла встречается в любое время во время всего процесса, EOFException
создается исключение.
После преобразования каждой группы в символ с помощью этого процесса символы собираются в том же порядке, в котором их соответствующие группы были считываются из входного потока, чтобы сформировать String
возвращаемый символ.
Метод writeUTF
интерфейса DataOutput
может использоваться для записи данных, подходящих для чтения этим методом.
Документация по Java для java.io.DataInput.readUTF()
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.