Freigeben über


Pipe.SourceChannel.Read Methode

Definition

Überlädt

Read(ByteBuffer)

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

Read(ByteBuffer[])

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

Read(ByteBuffer[], Int32, Int32)

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

Read(ByteBuffer)

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")]
public abstract int Read (Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler")>]
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

Implementiert

Attribute

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; sein Grenzwert wird sich nicht geändert haben.

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 vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Read(ByteBuffer[])

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

[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;)J", "GetRead_arrayLjava_nio_ByteBuffer_Handler")]
public abstract long Read (Java.Nio.ByteBuffer[]? dsts);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;)J", "GetRead_arrayLjava_nio_ByteBuffer_Handler")>]
abstract member Read : Java.Nio.ByteBuffer[] -> int64

Parameter

dsts
ByteBuffer[]

Die Puffer, in die 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

Implementiert

Attribute

Hinweise

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

Ein Aufruf dieser Methode des Formulars c.read(dsts) verhält sich genauso wie der Aufruf

<Blockquote>

c.read(dsts, 0, dsts.length);

</blockquote>

Java-Dokumentation für java.nio.channels.ScatteringByteChannel.read(java.nio.ByteBuffer[]).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Read(ByteBuffer[], Int32, Int32)

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

[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;II)J", "GetRead_arrayLjava_nio_ByteBuffer_IIHandler")]
public abstract long Read (Java.Nio.ByteBuffer[]? dsts, int offset, int length);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;II)J", "GetRead_arrayLjava_nio_ByteBuffer_IIHandler")>]
abstract member Read : Java.Nio.ByteBuffer[] * int * int -> int64

Parameter

dsts
ByteBuffer[]

Die Puffer, in die Bytes übertragen werden sollen

offset
Int32

Der Offset innerhalb des Pufferarrays des ersten Puffers, in den Bytes übertragen werden sollen; darf nicht negativ und nicht größer als dsts.length

length
Int32

Die maximale Anzahl von Puffern, auf die zugegriffen werden soll; darf nicht negativ und nicht größer als dsts.length - offset

Gibt zurück

Die Anzahl der gelesenen Bytes, möglicherweise null oder -1 wenn der Kanal das Ende des Datenstroms erreicht hat

Implementiert

Attribute

Hinweise

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

Ein Aufruf dieser Methode versucht, bis zu r Bytes aus diesem Kanal zu lesen, wobei r die Gesamtanzahl der Bytes ist, die die angegebene Untermenge des angegebenen Pufferarrays, d. h.

<Blockquote>

dsts[offset].remaining()
                + dsts[offset+1].remaining()
                + ... + dsts[offset+length-1].remaining()

</blockquote>

im Moment, in dem diese Methode aufgerufen wird.

Angenommen, eine Bytesequenz der Länge n wird gelesen, wobei 0 <= n <= r. Bis zu den ersten dsts[offset].remaining() Byte dieser Sequenz werden in Puffer dsts[offset]übertragen, bis zu den nächsten dsts[offset+1].remaining() Bytes in Puffer dsts[offset+1]übertragen und so weiter, bis die gesamte Bytesequenz in die angegebenen Puffer übertragen wird. So viele Bytes wie möglich werden in jeden Puffer übertragen, daher ist die endgültige Position jedes aktualisierten Puffers, mit Ausnahme des letzten aktualisierten Puffers, garantiert gleich dem Grenzwert dieses Puffers.

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.ScatteringByteChannel.read(java.nio.ByteBuffer[], int, int).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: