Язык

ByteBuffer.Compact Метод

Определение

Сжимает этот буфер>; > (необязательная операция).

[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

Возвращаемое значение

Этот буфер

Атрибуты

Исключения

Значение , если изменения в содержимое этого буфера не могут быть внесены.

Комментарии

Сжимает этот буфер>; > (необязательная операция).

Байты между текущей позицией буфера и его ограничением, если таковые имеются, копируются в начало буфера. То есть байт по индексу p =>position() копируется в нулевой индекс, байт по индексу p>+> 1 копируется в индекс один, и т. д. до байта по индексу limit()>->; 1 копируется в индекс n =>limit()>->1>-> p. Затем позиция буфера имеет значение n+1 , а его ограничение имеет емкость. Метка, если определена, удаляется.

Позиция буфера имеет значение числа скопированных байтов, а не нуля, поэтому вызов этого метода может быть немедленно вызван вызовом другого относительного метода put .

Вызовите этот метод после записи данных из буфера, если запись была неполной. Следующий цикл, например, копирует байты из одного канала в другой через буфер 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>

Java документации по java.nio.ByteBuffer.compact().

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к