ByteBuffer.Compact Methode

Definition

Komprimiert diesen Puffer   (optionaler Vorgang).

[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

Gibt zurück

Dieser Puffer

Attribute

Ausnahmen

wenn an dem Inhalt dieses Puffers möglicherweise keine Änderungen vorgenommen werden.

Hinweise

Komprimiert diesen Puffer   (optionaler Vorgang).

Die Bytes zwischen der aktuellen Position des Puffers und dessen Grenzwert werden ggf. an den Anfang des Puffers kopiert. Das heißt, das Byte bei index p = position() wird in Index 0 kopiert, das Byte bei index p +  1 wird in index 1 kopiert, und so weiter bis zum Byte bei index limit() -  1 wird in index n =  kopiert;limit() - 1 - p. Die Position des Puffers wird dann auf n+1 festgelegt, und sein Grenzwert wird auf seine Kapazität festgelegt. Die Markierung, falls definiert, wird verworfen.

Die Position des Puffers wird auf die Anzahl der kopierten Bytes und nicht auf Null festgelegt, sodass ein Aufruf dieser Methode sofort durch einen Aufruf einer anderen relativen Put-Methode gefolgt werden kann.

Rufen Sie diese Methode nach dem Schreiben von Daten aus einem Puffer auf, falls der Schreibvorgang unvollständig war. Die folgende Schleife kopiert beispielsweise Bytes aus einem Kanal über den Puffer bufin einen anderen:

<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>

Java-Dokumentation für java.nio.ByteBuffer.compact().

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: