語言

IAsynchronousByteChannel.Read 方法

定義

多載

名稱 Description
Read(ByteBuffer)

從此通道讀取一串位元組到給定的緩衝區。

Read(ByteBuffer, Object, ICompletionHandler)

從此通道讀取一串位元組到給定的緩衝區。

Read(ByteBuffer)

從此通道讀取一串位元組到給定的緩衝區。

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_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? Read(Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)>]
abstract member Read : Java.Nio.ByteBuffer -> Java.Util.Concurrent.IFuture

參數

dst
ByteBuffer

位元組要傳送到的緩衝區

傳回

一個代表這次行動結果的未來

屬性

備註

從此通道讀取一串位元組到給定的緩衝區。

此方法會啟動非同步讀取操作,將該通道的一串位元組讀取到指定緩衝區。 此方法的行為與該 #read(ByteBuffer,Object,CompletionHandler) read(ByteBuffer,Object,CompletionHandler) 方法完全相同,不同的是,該方法回傳的是代表待處理結果的 a Future ,而非指定完成處理程序。 Futures Future#get() get 方法回傳已讀取的位元組數,或-1若通道已達串流終止,無法讀取位元組。

Java 文件 java.nio.channels.AsynchronousByteChannel.read(java.nio.ByteBuffer)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

Read(ByteBuffer, Object, ICompletionHandler)

從此通道讀取一串位元組到給定的緩衝區。

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_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 Read(Java.Nio.ByteBuffer? dst, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_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 Read : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

參數

dst
ByteBuffer

位元組要傳送到的緩衝區

attachment
Object

要附加到 I/O 操作上的物件;可以是 null

handler
ICompletionHandler

完成處理程序

屬性

備註

從此通道讀取一串位元組到給定的緩衝區。

此方法會啟動非同步讀取操作,將該通道的一串位元組讀取到指定緩衝區。 參數 handler 是一個完成處理程序,當讀取操作完成(或失敗)時會被呼叫。 傳遞給完備處理器的結果是讀取的位元組數,或 -1 若通道已達串流結束,無法讀取位元組。

讀取操作可從通道讀取最多 r 位元組,其中 r 是緩衝區中剩餘的位元組數,即 dst.remaining() 嘗試讀取時的位元組數。 當 r 為 0 時,讀取操作立即完成,結果為 , 0 且未啟動 I/O 操作。

假設讀取長度 為 n 的位元組序列,其中 0& nbsp;< n <= R。 此位元組序列會被傳送到緩衝區,使序列中的第一個位元組位於索引 p ,最後一個位元組位於 p + n - 1,其中 p 是讀取執行時緩衝區的位置。 完成後緩衝區的位置將等於 p + n;其極限不會改變。

緩衝區不適合多個並行執行緒使用,因此應注意在操作完成前不要存取緩衝區。

此方法可隨時啟動。 某些通道類型可能不允許同時有超過一個讀取。 如果執行緒在前一次讀取操作尚未完成前就啟動讀取操作,則會拋出 a ReadPendingException 。

Java 文件 java.nio.channels.AsynchronousByteChannel.read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於