Linguaggio

CharsetEncoder.Encode Metodo

Definizione

Overload

Nome Descrizione
Encode(CharBuffer)

Metodo pratico che codifica il contenuto rimanente di un singolo buffer di caratteri di input in un buffer di byte appena allocato.

Encode(CharBuffer, ByteBuffer, Boolean)

Codifica il maggior numero possibile di caratteri dal buffer di input specificato, scrivendo i risultati nel buffer di output specificato.

Encode(CharBuffer)

Metodo pratico che codifica il contenuto rimanente di un singolo buffer di caratteri di input in un buffer di byte appena allocato.

[Android.Runtime.Register("encode", "(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;", "")]
public Java.Nio.ByteBuffer? Encode(Java.Nio.CharBuffer? in);
[<Android.Runtime.Register("encode", "(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;", "")>]
member this.Encode : Java.Nio.CharBuffer -> Java.Nio.ByteBuffer

Parametri

in
CharBuffer

Buffer dei caratteri di input

Valori restituiti

Buffer di byte appena allocato contenente il risultato dell'operazione di codifica. La posizione del buffer sarà zero e il limite seguirà l'ultimo byte scritto.

Attributi

Eccezioni

se è in corso un'altra operazione di codifica.

se viene rilevata una sequenza di caratteri di input non valida per questo set di caratteri e l'azione per l'errore in formato non valido è Report

se viene rilevata una sequenza di caratteri di input legale ma non modificabile per questo charset e l'azione per l'errore di carattere non modificabile è Report. Unmappable indica che la sequenza di caratteri Unicode nella posizione corrente del buffer di input non può essere mappata a una sequenza di byte equivalente.

se si è verificata un'altra eccezione durante l'operazione di codifica.

Commenti

Metodo pratico che codifica il contenuto rimanente di un singolo buffer di caratteri di input in un buffer di byte appena allocato.

Questo metodo implementa un'intera operazione di codifica; ovvero reimposta questo codificatore, quindi codifica i caratteri nel buffer di caratteri specificato e infine scarica questo codificatore. Questo metodo non deve pertanto essere richiamato se è già in corso un'operazione di codifica.

per java.nio.charset.CharsetEncoder.encode(java.nio.CharBuffer).

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

Encode(CharBuffer, ByteBuffer, Boolean)

Codifica il maggior numero possibile di caratteri dal buffer di input specificato, scrivendo i risultati nel buffer di output specificato.

[Android.Runtime.Register("encode", "(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;", "")]
public Java.Nio.Charset.CoderResult? Encode(Java.Nio.CharBuffer? in, Java.Nio.ByteBuffer? out, bool endOfInput);
[<Android.Runtime.Register("encode", "(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;", "")>]
member this.Encode : Java.Nio.CharBuffer * Java.Nio.ByteBuffer * bool -> Java.Nio.Charset.CoderResult

Parametri

in
CharBuffer

Buffer dei caratteri di input

out
ByteBuffer

Buffer dei byte di output

endOfInput
Boolean

true se e solo se, l'invoker non può fornire caratteri di input aggiuntivi oltre quelli nel buffer specificato

Valori restituiti

Oggetto coder-result che descrive il motivo della terminazione

Attributi

Eccezioni

se l'operazione di codifica è già stata avviata o non sono necessari altri input in questo processo di codifica.

Se il EncodeLoop(CharBuffer, ByteBuffer) metodo ha generato un oggetto BufferUnderflowException o BufferUnderflowException.

Commenti

Codifica il maggior numero possibile di caratteri 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 caratteri verranno letti e al massimo Buffer#remaining out.remaining() verranno scritti byte. Le posizioni dei buffer saranno avanzate per riflettere i caratteri letti e i byte scritti, ma i relativi contrassegni e limiti non verranno modificati.

Oltre a leggere i caratteri dal buffer di input e scrivere byte 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 codificata. Se non è presente alcun ulteriore input, il invoker può procedere al passaggio successivo dell'operazione di codifica. 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 codificare altri caratteri. Questo metodo deve essere richiamato di nuovo con un buffer di output con più byte rimanenti buffer#rimanenti. Questa operazione viene in genere eseguita svuotando tutti i byte codificati dal buffer di output.

</li>

<li>

Un risultato di coderResult#malformedForLength indica che è stato rilevato un errore di input in formato non valido. I caratteri in formato non valido iniziano nella posizione del buffer di input (possibilmente incrementata); Il numero di caratteri 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 codificatore è 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 caratteri che codificano il carattere non convalidabile iniziano in corrispondenza della posizione del buffer di input (possibilmente incrementato); il numero di tali caratteri 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 codificatore è 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 codifica, è necessario prestare attenzione a mantenere tutti i caratteri 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 codificato rimanente venga considerato in formato non valido.

Questo metodo funziona richiamando il metodo, interpretandone i #encodeLoop encodeLoop risultati, gestendo le condizioni di errore e richiamandolo in base alle esigenze.

per java.nio.charset.CharsetEncoder.encode(java.nio.CharBuffer, java.nio.ByteBuffer, 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.

Si applica a