IWritableByteChannel.Write(ByteBuffer) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
从给定缓冲区将字节序列写入此通道。
[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;)I", "GetWrite_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IWritableByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public int Write(Java.Nio.ByteBuffer? src);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;)I", "GetWrite_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IWritableByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Write : Java.Nio.ByteBuffer -> int
参数
- src
- ByteBuffer
要从中检索字节的缓冲区
返回
写入的字节数,可能为零
- 属性
例外
如果通道未打开进行写入,则为
如果通道已关闭,则为
如果另一个线程在写入期间关闭通道,
如果另一个线程在写入过程中中断调用线程,
发生另一个 IO 异常,详细信息位于消息中。
注解
从给定缓冲区将字节序列写入此通道。
尝试将最大 r 字节写入通道,其中 r 是缓冲区中剩余的字节数,即 src.remaining(),在调用此方法时。
假设写入了长度 n 的字节序列,其中 0 <= n <= r. 此字节序列将从从索引 p 开始的缓冲区传输,其中 p 是调用此方法时缓冲区的位置;写入的最后一个字节的索引将为 p + n - 1。 返回缓冲区的位置将等于 p + n;其限制不会更改。
除非另有指定,否则写入操作仅在写入所有 r 请求的字节后返回。 某些类型的通道(具体取决于其状态)可能只写入某些字节或根本不写入任何字节。 例如,非阻塞模式下的套接字通道无法写入比套接字的输出缓冲区中可用更多的字节。
可以随时调用此方法。 但是,如果另一个线程已在此通道上启动写入操作,则此方法的调用将阻止,直到第一个操作完成。
Java文档java.nio.channels.WritableByteChannel.write(java.nio.ByteBuffer)。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。