Compartir a través de


ByteBuffer.Compact Método

Definición

Compacta este búfer   (operación opcional).

[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

Devoluciones

Este búfer

Atributos

Excepciones

si no se puede realizar ningún cambio en el contenido de este búfer.

Comentarios

Compacta este búfer   (operación opcional).

Los bytes entre la posición actual del búfer y su límite, si existe, se copian al principio del búfer. Es decir, el byte en el índice p = position() se copia en el índice cero, el byte en el índice p +  1 se copia en el índice uno, y así sucesivamente hasta el byte en el índice limit() -  1 se copia en el índice n = limit() - 1 - p. La posición del búfer se establece en n+1 y su límite se establece en su capacidad. La marca, si se define, se descarta.

La posición del búfer se establece en el número de bytes copiados, en lugar de en cero, para que una invocación de este método pueda ir seguida inmediatamente por una invocación de otro método put relativo.

Invoque este método después de escribir datos de un búfer en caso de que la escritura estuviera incompleta. El siguiente bucle, por ejemplo, copia bytes de un canal a otro a través del búfer 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>

Documentación de Java para java.nio.ByteBuffer.compact().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a