Freigeben über


IDataInput.ReadUTF Methode

Definition

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 Stringzurü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.

Gilt für:

Weitere Informationen