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 复制到索引 1,依此类推,直到 index 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.nio.ByteBuffer.compact()Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于