IAsynchronousByteChannel.Write 方法

定义

重载

名称 说明
Write(ByteBuffer)

从给定缓冲区将字节序列写入此通道。

Write(ByteBuffer, Object, ICompletionHandler)

从给定缓冲区将字节序列写入此通道。

Write(ByteBuffer)

从给定缓冲区将字节序列写入此通道。

[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetWrite_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)]
public Java.Util.Concurrent.IFuture? Write(Java.Nio.ByteBuffer? src);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetWrite_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)>]
abstract member Write : Java.Nio.ByteBuffer -> Java.Util.Concurrent.IFuture

参数

src
ByteBuffer

要从中检索字节的缓冲区

返回

表示操作结果的未来

属性

注解

从给定缓冲区将字节序列写入此通道。

此方法启动异步写入操作,以从给定缓冲区将字节序列写入此通道。 该方法的行为方式 #write(ByteBuffer,Object,CompletionHandler) write(ByteBuffer,Object,CompletionHandler) 与方法的行为方式完全相同,不同之处在于该方法不指定完成处理程序,而是返回 Future 表示挂起的结果。 方法FutureFuture#get() get返回写入的字节数。

Java文档java.nio.channels.AsynchronousByteChannel.write(java.nio.ByteBuffer)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于

Write(ByteBuffer, Object, ICompletionHandler)

从给定缓冲区将字节序列写入此通道。

[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetWrite_Ljava_nio_ByteBuffer_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public void Write(Java.Nio.ByteBuffer? src, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetWrite_Ljava_nio_ByteBuffer_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Write : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

参数

src
ByteBuffer

要从中检索字节的缓冲区

attachment
Object

要附加到 I/O 操作的对象;可以是 null

handler
ICompletionHandler

完成处理程序对象

属性

注解

从给定缓冲区将字节序列写入此通道。

此方法启动异步写入操作,以从给定缓冲区将字节序列写入此通道。 参数 handler 是写入操作完成时调用的完成处理程序(或失败)。 传递给完成处理程序的结果是写入的字节数。

写入操作最多可将 r 字节写入通道,其中 r 是缓冲区中剩余的字节数,即 src.remaining() 尝试写入时。 如果 r 为 0,则写入操作会立即完成,结果 0 为不启动 I/O 操作。

假设写入了长度 n 的字节序列,其中 0 < n <= r. 此字节序列将从从索引 p 开始的缓冲区传输,其中 p 是执行写入时缓冲区的位置;写入的最后一个字节的索引将为 p + n - 1。 完成后,缓冲区的位置将等于 p + n;其限制不会更改。

缓冲区不能安全地供多个并发线程使用,因此在操作完成之前,应注意不要访问缓冲区。

可以随时调用此方法。 某些通道类型可能不允许在任何给定时间完成多个写入。 如果线程在上一个写入操作完成之前启动写入操作,则会引发写入 WritePendingException 操作。

Java文档java.nio.channels.AsynchronousByteChannel.write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于