CharsetDecoder.Decode Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
| Nome | Descrizione |
|---|---|
| Decode(ByteBuffer) |
Metodo pratico che decodifica il contenuto rimanente di un singolo buffer di byte di input in un buffer di caratteri appena allocato. |
| Decode(ByteBuffer, CharBuffer, Boolean) |
Decodifica il maggior numero possibile di byte dal buffer di input specificato, scrivendo i risultati nel buffer di output specificato. |
Decode(ByteBuffer)
Metodo pratico che decodifica il contenuto rimanente di un singolo buffer di byte di input in un buffer di caratteri appena allocato.
[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
Parametri
- in
- ByteBuffer
Buffer dei byte di input
Valori restituiti
Buffer di caratteri appena allocato contenente il risultato dell'operazione di decodifica. La posizione del buffer sarà zero e il limite seguirà l'ultimo carattere scritto.
- Attributi
Eccezioni
se è in corso un'altra operazione di decodifica.
se è stata rilevata una sequenza di byte di input non valida per questo set di caratteri e l'azione per l'errore in formato non valido è Report
se è stata rilevata una sequenza di byte di input legale ma non valida per questo set di caratteri e l'azione per l'errore di carattere non applicabile è Report. Unmappable indica che la sequenza di byte nella posizione corrente del buffer di input non può essere mappata a una sequenza di caratteri Unicode.
se si è verificata un'altra eccezione durante l'operazione di decodifica.
Commenti
Metodo pratico che decodifica il contenuto rimanente di un singolo buffer di byte di input in un buffer di caratteri appena allocato.
Questo metodo implementa un'intera operazione di decodifica; ovvero reimposta questo decodificatore, quindi decodifica i byte nel buffer di byte specificato e infine scarica questo decodificatore. Questo metodo non deve pertanto essere richiamato se è già in corso un'operazione di decodifica.
per java.nio.charset.CharsetDecoder.decode(java.nio.ByteBuffer).
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.
Si applica a
Decode(ByteBuffer, CharBuffer, Boolean)
Decodifica il maggior numero possibile di byte dal buffer di input specificato, scrivendo i risultati nel buffer di output specificato.
[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
Parametri
- in
- ByteBuffer
Buffer dei byte di input
- out
- CharBuffer
Buffer dei caratteri di output
- endOfInput
- Boolean
true se e solo se, l'invoker non può fornire byte di input aggiuntivi oltre quelli nel buffer specificato
Valori restituiti
Oggetto coder-result che descrive il motivo della terminazione
- Attributi
Eccezioni
se la decodifica è stata avviata o non sono necessari altri input in questo stato di decodifica.
se il DecodeLoop(ByteBuffer, CharBuffer) metodo ha generato un BufferUnderflowException oggetto o BufferOverflowException.
Commenti
Decodifica il maggior numero possibile di byte dal buffer di input specificato, scrivendo i risultati nel buffer di output specificato.
I buffer vengono letti e scritti in, a partire dalle posizioni correnti.
Buffer#remaining in.remaining() Al massimo i byte verranno letti e al massimo Buffer#remaining out.remaining() verranno scritti caratteri. Le posizioni dei buffer saranno avanzate per riflettere i byte letti e i caratteri scritti, ma i relativi contrassegni e limiti non verranno modificati.
Oltre a leggere i byte dal buffer di input e scrivere caratteri nel buffer di output, questo metodo restituisce un CoderResult oggetto per descrivere il motivo della terminazione:
<ul>
<li>
CoderResult#UNDERFLOW indica che la maggior parte del buffer di input possibile è stata decodificata. Se non è presente alcun ulteriore input, il invoker può procedere con il passaggio successivo dell'operazione di decodifica. In caso contrario, questo metodo deve essere richiamato nuovamente con ulteriore input.
</li>
<li>
CoderResult#OVERFLOW indica che lo spazio nel buffer di output non è sufficiente per decodificare altri byte. Questo metodo deve essere richiamato nuovamente con un buffer di output con più caratteri rimanenti buffer#rimanenti. Questa operazione viene in genere eseguita svuotando tutti i caratteri decodificati dal buffer di output.
</li>
<li>
Un risultato di coderResult#malformedForLength indica che è stato rilevato un errore di input in formato non valido. I byte in formato non valido iniziano nella posizione del buffer di input (possibilmente incrementata); Il numero di byte in formato non valido può essere determinato richiamando il metodo dell'oggetto CoderResult#length() length risultato. Questo caso si applica solo se l'azione #onMalformedInput in formato non valido di questo decodificatore è CodingErrorAction#REPORT; in caso contrario, l'input in formato non valido verrà ignorato o sostituito, come richiesto.
</li>
<li>
Un risultato coderResult#unmappableForLength unmappable-character result indica che è stato rilevato un errore di carattere non associabile. I byte che decodificano il carattere non utilizzabile iniziano in corrispondenza della posizione del buffer di input (possibilmente incrementata); il numero di tali byte può essere determinato richiamando il metodo dell'oggetto CoderResult#length() length risultato. Questo caso si applica solo se l'azione #onUnmappableCharacter non modificabile di questo decodificatore è CodingErrorAction#REPORT; in caso contrario, il carattere non modificabile verrà ignorato o sostituito, come richiesto.
</li>
</ul>
In ogni caso, se questo metodo deve essere reintegrato nella stessa operazione di decodifica, è necessario prestare attenzione a mantenere tutti i byte rimanenti nel buffer di input in modo che siano disponibili per la chiamata successiva.
Il endOfInput parametro consiglia a questo metodo se l'invoker può fornire ulteriore input oltre a quello contenuto nel buffer di input specificato. Se esiste una possibilità di fornire input aggiuntivo, il invoker deve passare false per questo parametro; se non esiste alcuna possibilità di fornire ulteriore input, il invoker deve passare true. Non è errato, e di fatto è piuttosto comune, passare false una chiamata e poi scoprire che nessun altro input era effettivamente disponibile. È tuttavia fondamentale che la chiamata finale di questo metodo in una sequenza di chiamate passi true sempre in modo che qualsiasi input non dichiarato rimanente venga considerato in formato non corretto.
Questo metodo funziona richiamando il metodo, interpretandone i #decodeLoop decodeLoop risultati, gestendo le condizioni di errore e richiamandolo in base alle esigenze.
per java.nio.charset.CharsetDecoder.decode(java.nio.ByteBuffer, java.nio.CharBuffer, boolean).
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.