IReadableByteChannel.Read(ByteBuffer) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer.
[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IReadableByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public int Read(Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IReadableByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Read : Java.Nio.ByteBuffer -> int
Parameter
- dst
- ByteBuffer
Der Puffer, in den Bytes übertragen werden sollen
Gibt zurück
Die Anzahl der gelesenen Bytes, möglicherweise null oder -1 wenn der Kanal das Ende des Datenstroms erreicht hat
- Attribute
Ausnahmen
wenn ein anderer Thread den Kanal während des Lesens schließt.
wenn ein anderer Thread den aufrufenden Thread unterbricht, während der Vorgang ausgeführt wird. Der Unterbrechungszustand des aufrufenden Threads wird festgelegt, und der Kanal wird geschlossen.
wenn der Kanal geschlossen ist.
Ein anderer E/A-Fehler tritt auf, Details befinden sich in der Nachricht.
wenn der Kanal nicht zum Lesen geöffnet wurde.
Hinweise
Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer.
Es wird versucht, bis zu r Bytes aus dem Kanal zu lesen, wobei r die Anzahl der im Puffer verbleibenden Bytes ist, dst.remaining()d. h. zum Zeitpunkt, in dem diese Methode aufgerufen wird.
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 im Moment ist, wird diese Methode aufgerufen. Wenn die Position des Puffers zurückgegeben wird, ist dies gleich p + n; ihr Grenzwert wird nicht geändert.
Ein Lesevorgang füllt den Puffer möglicherweise nicht aus, und tatsächlich liest er überhaupt keine Bytes. Ob dies der Fall ist, hängt von der Art und dem Zustand des Kanals ab. Ein Socketkanal im nicht blockierenden Modus kann z. B. nicht mehr Bytes lesen, als sofort aus dem Eingabepuffer des Sockets verfügbar sind; Entsprechend kann ein Dateikanal nicht mehr Bytes lesen, als in der Datei verbleiben. Es ist jedoch gewährleistet, dass, wenn sich ein Kanal im Blockierungsmodus befindet und mindestens ein Byte im Puffer verbleibt, diese Methode blockiert, bis mindestens ein Byte gelesen wird.
Diese Methode kann jederzeit aufgerufen werden. Wenn bereits ein anderer Thread einen Lesevorgang für diesen Kanal initiiert hat, wird ein Aufruf dieser Methode jedoch blockiert, bis der erste Vorgang abgeschlossen ist.
Java Dokumentation für java.nio.channels.ReadableByteChannel.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.