IDataInput.ReadUTF Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 110xxxxx
de 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 10xxxxxx
de 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 1110xxxx
de 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 10xxxxxx
de 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.