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.

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