IDataInput.ReadUTF Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Liest in einer Zeichenfolge, die mit einem geänderten UTF-8-Format codiert wurde.
[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
Gibt zurück
eine Unicode-Zeichenfolge.
- Attribute
Ausnahmen
wenn das Ende der Eingabe erreicht ist, bevor die Leseanforderung erfüllt werden kann.
wenn beim Lesen ein E/A-Fehler auftritt.
Hinweise
Liest in einer Zeichenfolge, die mit einem geänderten UTF-8-Format codiert wurde. Der allgemeine Vertrag readUTF
besteht darin, dass sie eine Darstellung einer Unicode-Zeichenfolge liest, die im geänderten UTF-8-Format codiert ist. Diese Zeichenfolge von Zeichen wird dann als eine String
zurückgegeben.
Zunächst werden zwei Bytes gelesen und verwendet, um eine nicht signierte 16-Bit-Ganzzahl genau auf die Art und Weise der readUnsignedShort
Methode zu erstellen. Dieser ganzzahlige Wert wird als UTF-Länge bezeichnet und gibt die Anzahl zusätzlicher Bytes an, die gelesen werden sollen. Diese Bytes werden dann in Zeichen konvertiert, indem sie in Gruppen berücksichtigt werden. Die Länge jeder Gruppe wird aus dem Wert des ersten Byte der Gruppe berechnet. The byte following a group, if any, is the first byte of the next group.
Wenn das erste Byte einer Gruppe mit dem Bitmuster 0xxxxxxx
übereinstimmt (wobei x
"kann sein oder 0
1
"), besteht die Gruppe aus nur diesem Byte. Das Byte wird null erweitert, um ein Zeichen zu bilden.
Wenn das erste Byte einer Gruppe mit dem Bitmuster 110xxxxx
übereinstimmt, besteht die Gruppe aus diesem Byte und einem zweiten Byte a
b
. Wenn kein Byte vorhanden ist (da Byte b
a
die letzte der zu lesenden Bytes war), oder wenn Byte b
nicht mit dem Bitmuster 10xxxxxx
übereinstimmt, wird ein UTFDataFormatException
Fehler ausgelöst. Andernfalls wird die Gruppe in das Zeichen konvertiert:
{@code (char)(((a & 0x1F) << 6) | (b & 0x3F))
}
Wenn das erste Byte einer Gruppe mit dem Bitmuster 1110xxxx
übereinstimmt, besteht die Gruppe aus diesem Byte a
und zwei weiteren Bytes b
und c
. Wenn kein Byte vorhanden ist (da Byte a
c
einer der letzten beiden zu lesenden Bytes war), oder byte oder Byte c
b
nicht mit dem Bitmuster 10xxxxxx
übereinstimmt, wird ein UTFDataFormatException
Fehler ausgelöst. Andernfalls wird die Gruppe in das Zeichen konvertiert:
{@code
(char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
}
Wenn das erste Byte einer Gruppe mit dem Muster 1111xxxx
oder dem Muster 10xxxxxx
übereinstimmt, wird ein UTFDataFormatException
Fehler ausgelöst.
Wenn während dieses gesamten Prozesses das Ende der Datei gefunden wird, wird ein EOFException
Fehler ausgelöst.
Nachdem jede Gruppe durch diesen Prozess in ein Zeichen konvertiert wurde, werden die Zeichen in der gleichen Reihenfolge gesammelt, in der ihre entsprechenden Gruppen aus dem Eingabedatenstrom gelesen wurden, um ein String
, das zurückgegeben wird.
Die writeUTF
Methode der Schnittstelle DataOutput
kann verwendet werden, um Daten zu schreiben, die zum Lesen durch diese Methode geeignet sind.
Java-Dokumentation für java.io.DataInput.readUTF()
.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.