ByteBuffer.Compact 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
压缩此缓冲区 (可选操作) 。
[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 属性许可证中所述的术语使用。