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()
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.