IAsynchronousByteChannel.Read Methode

Definition

Überlädt

Name Beschreibung
Read(ByteBuffer)

Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer.

Read(ByteBuffer, Object, ICompletionHandler)

Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer.

Read(ByteBuffer)

Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer.

[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

Parameter

dst
ByteBuffer

Der Puffer, in den Bytes übertragen werden sollen

Gibt zurück

Eine Zukunft, die das Ergebnis des Vorgangs darstellt

Attribute

Hinweise

Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer.

Diese Methode initiiert einen asynchronen Lesevorgang, um eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer zu lesen. Die Methode verhält sich genau so wie die #read(ByteBuffer,Object,CompletionHandler) read(ByteBuffer,Object,CompletionHandler) Methode, mit der Ausnahme, dass diese Methode anstelle eines Vervollständigungshandlers ein Future darstellungsendes Ergebnis zurückgibt. Die FutureMethode 's Future#get() get gibt die Anzahl der gelesenen Bytes zurück oder -1 wenn keine Bytes gelesen werden konnten, da der Kanal das Ende des Datenstroms erreicht hat.

Java Dokumentation für java.nio.channels.AsynchronousByteChannel.read(java.nio.ByteBuffer).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Read(ByteBuffer, Object, ICompletionHandler)

Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer.

[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

Parameter

dst
ByteBuffer

Der Puffer, in den Bytes übertragen werden sollen

attachment
Object

Das Objekt, das an den E/A-Vorgang angefügt werden soll; kann sein null

handler
ICompletionHandler

Der Abschlusshandler

Attribute

Hinweise

Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer.

Diese Methode initiiert einen asynchronen Lesevorgang, um eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer zu lesen. Der handler Parameter ist ein Vervollständigungshandler, der aufgerufen wird, wenn der Lesevorgang abgeschlossen ist (oder ein Fehler auftritt). Das an den Abschlusshandler übergebene Ergebnis ist die Anzahl der gelesenen Bytes oder -1 wenn keine Bytes gelesen werden konnten, da der Kanal das Ende des Datenstroms erreicht hat.

Der Lesevorgang kann bis zu r Bytes aus dem Kanal lesen, wobei r die Anzahl der im Puffer verbleibenden Bytes ist, dst.remaining() d. h. zum Zeitpunkt des Leseversuchs. Wenn r 0 ist, wird der Lesevorgang sofort mit einem Ergebnis abgeschlossen, ohne 0 einen E/A-Vorgang zu initiieren.

Angenommen, eine Bytesequenz der Länge n wird gelesen, wobei 0 <  n <=  r. Diese Bytesequenz wird in den Puffer übertragen, sodass das erste Byte in der Sequenz bei Index p liegt und das letzte Byte bei index p  liegt;+  n - 1, wobei p die Position des Puffers zum Zeitpunkt der Ausführung des Lesevorgangs ist. Nach Abschluss ist die Position des Puffers gleich p +  n; ihr Grenzwert wird nicht geändert.

Puffer sind nicht sicher für die Verwendung durch mehrere gleichzeitige Threads, daher sollten Sie darauf achten, erst nach Abschluss des Vorgangs auf den Puffer zuzugreifen.

Diese Methode kann jederzeit aufgerufen werden. Einige Kanaltypen erlauben möglicherweise nicht, dass mehrere Lesevorgänge zu einem bestimmten Zeitpunkt ausstehen. Wenn ein Thread einen Lesevorgang initiiert, bevor ein vorheriger Lesevorgang abgeschlossen wurde, wird ein ReadPendingException Fehler ausgelöst.

Java Dokumentation für java.nio.channels.AsynchronousByteChannel.read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: