Langue

CharsetDecoder.Decode Méthode

Définition

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.

Documentation Java pour java.nio.charset.CharsetDecoder.decode(java.nio.ByteBuffer, java.nio.CharBuffer, boolean).

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 à