Condividi tramite


ByteBuffer.Compact Metodo

Definizione

Compatta questo buffer   (operazione facoltativa).

[Android.Runtime.Register("compact", "()Ljava/nio/ByteBuffer;", "GetCompactHandler")]
public abstract Java.Nio.ByteBuffer Compact ();
[<Android.Runtime.Register("compact", "()Ljava/nio/ByteBuffer;", "GetCompactHandler")>]
abstract member Compact : unit -> Java.Nio.ByteBuffer

Restituisce

Questo buffer

Attributi

Eccezioni

se non è possibile apportare modifiche al contenuto del buffer.

Commenti

Compatta questo buffer   (operazione facoltativa).

I byte tra la posizione corrente del buffer e il relativo limite, se presenti, vengono copiati all'inizio del buffer. Ovvero, il byte in corrispondenza dell'indice p = position() viene copiato nell'indice zero, il byte in corrispondenza dell'indice p +  1 viene copiato nell'indice 1 e così via fino al byte in corrispondenza dell'indice limit() -  1 viene copiato nell'indice n = limit() - 1 - p. La posizione del buffer viene quindi impostata su n+1 e il limite viene impostato sulla sua capacità. Il contrassegno, se definito, viene rimosso.

La posizione del buffer è impostata sul numero di byte copiati, anziché su zero, in modo che una chiamata di questo metodo possa essere seguita immediatamente da una chiamata di un altro metodo put relativo.

Richiamare questo metodo dopo aver scritto dati da un buffer nel caso in cui la scrittura sia incompleta. Il ciclo seguente, ad esempio, copia i byte da un canale a un altro tramite il buffer buf:

<blockquote>

{@code
              buf.clear();          // Prepare buffer for use
              while (in.read(buf) >= 0 || buf.position != 0) {
                  buf.flip();
                  out.write(buf);
                  buf.compact();    // In case of partial write
              }
            }

</blockquote>

Documentazione java per java.nio.ByteBuffer.compact().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a