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