Compartilhar via


ByteBuffer.Compact Método

Definição

Compacta este buffer   (operação 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

Retornos

Este buffer

Atributos

Exceções

se não forem feitas alterações no conteúdo deste buffer.

Comentários

Compacta este buffer   (operação opcional).

Os bytes entre a posição atual do buffer e seu limite, se houver, são copiados para o início do buffer. Ou seja, o byte no índice p = position() é copiado para o índice zero, o byte no índice p +  1 é copiado para o índice um, e assim por diante até o byte no índice limit() -  1 é copiado para o índice n = limit() - 1 - págs. A posição do buffer é então definida como n+1 e seu limite é definido como sua capacidade. A marca, se definida, é descartada.

A posição do buffer é definida como o número de bytes copiados, em vez de zero, para que uma invocação desse método possa ser seguida imediatamente por uma invocação de outro método put relativo.

Invoque esse método depois de gravar dados de um buffer caso a gravação esteja incompleta. O loop a seguir, por exemplo, copia bytes de um canal para outro por meio do 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>

Documentação Java para java.nio.ByteBuffer.compact().

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Aplica-se a