CharsetDecoder.Decode 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.
Surcharges
| Nom | Description |
|---|---|
| Decode(ByteBuffer) |
Méthode pratique qui décode le contenu restant d’une mémoire tampon d’octet d’entrée unique dans une mémoire tampon de caractères nouvellement allouée. |
| Decode(ByteBuffer, CharBuffer, Boolean) |
Décode autant d’octets que possible à partir de la mémoire tampon d’entrée donnée, en écrivant les résultats dans la mémoire tampon de sortie donnée. |
Decode(ByteBuffer)
Méthode pratique qui décode le contenu restant d’une mémoire tampon d’octet d’entrée unique dans une mémoire tampon de caractères nouvellement allouée.
[Android.Runtime.Register("decode", "(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;", "")]
public Java.Nio.CharBuffer? Decode(Java.Nio.ByteBuffer? in);
[<Android.Runtime.Register("decode", "(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;", "")>]
member this.Decode : Java.Nio.ByteBuffer -> Java.Nio.CharBuffer
Paramètres
- in
- ByteBuffer
Mémoire tampon d’octet d’entrée
Retours
Mémoire tampon de caractères nouvellement allouée contenant le résultat de l’opération de décodage. La position de la mémoire tampon est égale à zéro et sa limite suit le dernier caractère écrit.
- Attributs
Exceptions
si une autre opération de décodage est en cours.
si une séquence d’octets d’entrée illégale pour cet ensemble de caractères a été rencontrée et que l’action pour une erreur incorrecte est Report
si une séquence d’octets d’entrée légale mais non modifiable pour cet ensemble de caractères a été rencontrée et que l’action pour l’erreur de caractère non modifiable est Report. L’inappappable signifie que la séquence d’octets à la position actuelle de la mémoire tampon d’entrée ne peut pas être mappée à une séquence de caractères Unicode.
si une autre exception s’est produite pendant l’opération de décodage.
Remarques
Méthode pratique qui décode le contenu restant d’une mémoire tampon d’octet d’entrée unique dans une mémoire tampon de caractères nouvellement allouée.
Cette méthode implémente une opération de décodage entière ; autrement dit, il réinitialise ce décodeur, puis décode les octets dans la mémoire tampon d’octets donnée, puis vide ce décodeur. Cette méthode ne doit donc pas être appelée si une opération de décodage est déjà en cours.
Documentation Java pour java.nio.charset.CharsetDecoder.decode(java.nio.ByteBuffer).
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 à
Decode(ByteBuffer, CharBuffer, Boolean)
Décode autant d’octets que possible à partir de la mémoire tampon d’entrée donnée, en écrivant les résultats dans la mémoire tampon de sortie donnée.
[Android.Runtime.Register("decode", "(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;", "")]
public Java.Nio.Charset.CoderResult? Decode(Java.Nio.ByteBuffer? in, Java.Nio.CharBuffer? out, bool endOfInput);
[<Android.Runtime.Register("decode", "(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;", "")>]
member this.Decode : Java.Nio.ByteBuffer * Java.Nio.CharBuffer * bool -> Java.Nio.Charset.CoderResult
Paramètres
- in
- ByteBuffer
Mémoire tampon d’octet d’entrée
- out
- CharBuffer
Mémoire tampon de caractères de sortie
- endOfInput
- Boolean
true si, et seulement si, l’appelant ne peut fournir aucun octet d’entrée supplémentaire au-delà de ceux dans la mémoire tampon donnée
Retours
Objet coder-result décrivant la raison de l’arrêt
- Attributs
Exceptions
si le décodage a démarré ou qu’aucune entrée supplémentaire n’est nécessaire dans cette progression de décodage.
si la DecodeLoop(ByteBuffer, CharBuffer) méthode a levé un BufferUnderflowException ou BufferOverflowException.
Remarques
Décode autant d’octets que possible à partir de la mémoire tampon d’entrée donnée, en écrivant les résultats dans la mémoire tampon de sortie donnée.
Les mémoires tampons sont lues et écrites à partir de leurs positions actuelles. Au maximum Buffer#remaining in.remaining() , les octets seront lus et au plus Buffer#remaining out.remaining() des caractères seront écrits. Les positions des mémoires tampons sont avancées pour refléter les octets lus et les caractères écrits, mais leurs marques et limites ne seront pas modifiées.
Outre la lecture d’octets de la mémoire tampon d’entrée et l’écriture de caractères dans la mémoire tampon de sortie, cette méthode retourne un CoderResult objet pour décrire sa raison d’arrêt :
<ul>
<li>
CoderResult#UNDERFLOW indique que la majeure partie de la mémoire tampon d’entrée possible a été décodée. S’il n’y a pas d’entrée supplémentaire, l’appelant peut passer à l’étape suivante de l’opération de décodage. Sinon, cette méthode doit être appelée à nouveau avec une entrée supplémentaire.
</li>
<li>
CoderResult#OVERFLOW indique qu’il y a un espace insuffisant dans la mémoire tampon de sortie pour décoder plus d’octets. Cette méthode doit être appelée à nouveau avec une mémoire tampon de sortie qui a plus de caractères de mémoire tampon#restante. Cela est généralement effectué en drainant les caractères décodés de la mémoire tampon de sortie.
</li>
<li>
Un résultat d’entrée incorrecte CoderResult#malformedForLength indique qu’une erreur d’entrée incorrecte a été détectée. Les octets mal formés commencent à la position de la mémoire tampon d’entrée (éventuellement incrémentée) ; le nombre d’octets mal formés peut être déterminé en appelant la méthode de l’objet CoderResult#length() length résultat. Ce cas s’applique uniquement si la #onMalformedInput action incorrecte de ce décodeur est CodingErrorAction#REPORT; sinon, l’entrée incorrecte sera ignorée ou remplacée, comme demandé.
</li>
<li>
Un résultat coderResult#unmappableForLength unmappable-character indique qu’une erreur unmappable-character a été détectée. Les octets qui décodent le caractère non modifiable commencent à la position de la mémoire tampon d’entrée (éventuellement incrémentée) ; le nombre d’octets de ce type peut être déterminé en appelant la méthode de l’objet CoderResult#length() length de résultat. Ce cas ne s’applique que si l’action #onUnmappableCharacter non utilisable de ce décodeur est CodingErrorAction#REPORT; sinon, le caractère inappable sera ignoré ou remplacé, comme demandé.
</li>
</ul>
Dans tous les cas, si cette méthode doit être réinvoque dans la même opération de décodage, veillez à conserver les octets restants dans la mémoire tampon d’entrée afin qu’elles soient disponibles pour l’appel suivant.
Le endOfInput paramètre conseille cette méthode de savoir si l’appelant peut fournir une entrée supplémentaire au-delà de celle contenue dans la mémoire tampon d’entrée donnée. S’il existe une possibilité de fournir une entrée supplémentaire, l’appelant doit passer false pour ce paramètre ; s’il n’est pas possible de fournir une entrée supplémentaire, l’appelant doit passer true. Il n’est pas erroné, et en fait il est assez courant, de passer false un appel et de découvrir ultérieurement qu’aucune autre entrée n’a été réellement disponible. Toutefois, il est essentiel que l’appel final de cette méthode dans une séquence d’appels passe true toujours afin que toute entrée non décodée restante soit traitée comme étant incorrecte.
Cette méthode fonctionne en appelant la #decodeLoop decodeLoop méthode, en interprétant ses résultats, en gérant les conditions d’erreur et en la révoquant si nécessaire.
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.