Partager via


IDataInput.ReadUTF Méthode

Définition

Lit dans une chaîne qui a été encodée à l’aide d’un format UTF-8 modifié.

[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

Retours

chaîne Unicode.

Attributs

Exceptions

si la fin de l’entrée est atteinte avant que la demande de lecture puisse être satisfaite.

si une erreur d’E/S se produit lors de la lecture.

Remarques

Lit dans une chaîne qui a été encodée à l’aide d’un format UTF-8 modifié. Le contrat général d’est readUTF qu’il lit une représentation d’une chaîne de caractères Unicode encodée au format UTF-8 modifié ; cette chaîne de caractères est ensuite retournée en tant que String.

Tout d’abord, deux octets sont lus et utilisés pour construire un entier 16 bits non signé exactement de la manière de la readUnsignedShort méthode. Cette valeur entière est appelée longueur UTF et spécifie le nombre d’octets supplémentaires à lire. Ces octets sont ensuite convertis en caractères en les considérant dans des groupes. La longueur de chaque groupe est calculée à partir de la valeur du premier octet du groupe. L’octet suivant un groupe, le cas échéant, est le premier octet du groupe suivant.

Si le premier octet d’un groupe correspond au modèle 0xxxxxxx de bits (où x signifie « peut être 0 ou 1»), le groupe se compose simplement de cet octet. L’octet est étendu à zéro pour former un caractère.

Si le premier octet d’un groupe correspond au modèle 110xxxxxde bits, le groupe se compose de cet octet a et d’un deuxième octet b. S’il n’y a pas d’octet b (car a l’octet était le dernier octet à lire), ou si l’octet b ne correspond pas au modèle 10xxxxxxde bits, un UTFDataFormatException octet est levée. Sinon, le groupe est converti en caractère :

{@code (char)(((a & 0x1F) << 6) | (b & 0x3F))
            }

Si le premier octet d’un groupe correspond au modèle 1110xxxxde bits, le groupe se compose de cet a octet et de deux octets b supplémentaires et c. S’il n’y a pas d’octet c (car a l’octet a été l’un des deux derniers octets à lire), ou que l’octet b ou l’octet c ne correspond pas au modèle 10xxxxxxde bits, un UTFDataFormatException octet est levée. Sinon, le groupe est converti en caractère :

{@code
            (char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
            }

Si le premier octet d’un groupe correspond au modèle ou au modèle 1111xxxx 10xxxxxx, il UTFDataFormatException est levée.

Si la fin du fichier est rencontrée à tout moment pendant tout ce processus, une EOFException exception est levée.

Une fois que chaque groupe a été converti en caractère par ce processus, les caractères sont collectés, dans le même ordre dans lequel leurs groupes correspondants ont été lus à partir du flux d’entrée, pour former un String, qui est retourné.

La writeUTF méthode d’interface DataOutput peut être utilisée pour écrire des données adaptées à la lecture par cette méthode.

Documentation Java pour java.io.DataInput.readUTF().

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à

Voir aussi