Lingua

IScatteringByteChannel.Read Metodo

Definizione

Overload

Nome Descrizione
Read(ByteBuffer[])

Legge una sequenza di byte da questo canale nei buffer specificati.

Read(ByteBuffer[], Int32, Int32)

Legge una sequenza di byte da questo canale in una sottosequenza dei buffer specificati.

Read(ByteBuffer[])

Legge una sequenza di byte da questo canale nei buffer specificati.

[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;)J", "GetRead_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IScatteringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Read(Java.Nio.ByteBuffer[]? dsts);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;)J", "GetRead_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IScatteringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Read : Java.Nio.ByteBuffer[] -> int64

Parametri

dsts
ByteBuffer[]

Buffer in cui devono essere trasferiti i byte

Valori restituiti

Numero di byte letti, possibilmente zero o -1 se il canale ha raggiunto la fine del flusso

Attributi

Eccezioni

se il canale viene chiuso da un altro thread durante questa operazione di lettura.

se un altro thread interrompe il thread chiamante mentre l'operazione è in corso. Lo stato di interrupt del thread chiamante è impostato e il canale viene chiuso.

se il canale è chiuso.

se si verifica un altro errore di I/O; i dettagli sono presenti nel messaggio.

se il canale non è stato aperto in una modalità che consente la lettura.

Commenti

Legge una sequenza di byte da questo canale nei buffer specificati.

Una chiamata di questo metodo del form c.read(dsts) si comporta esattamente come la chiamata

<blockquote>

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

</blockquote>

per java.nio.channels.ScatteringByteChannel.read(java.nio.ByteBuffer[]).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a

Read(ByteBuffer[], Int32, Int32)

Legge una sequenza di byte da questo canale in una sottosequenza dei buffer specificati.

[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;II)J", "GetRead_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IScatteringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Read(Java.Nio.ByteBuffer[]? dsts, int offset, int length);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;II)J", "GetRead_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IScatteringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Read : Java.Nio.ByteBuffer[] * int * int -> int64

Parametri

dsts
ByteBuffer[]

Buffer in cui devono essere trasferiti i byte

offset
Int32

Offset all'interno della matrice di buffer del primo buffer in cui devono essere trasferiti i byte; deve essere non negativo e non maggiore di dsts.length

length
Int32

Numero massimo di buffer a cui accedere; deve essere non negativo e non superiore a dsts.length - offset

Valori restituiti

Numero di byte letti, possibilmente zero o -1 se il canale ha raggiunto la fine del flusso

Attributi

Eccezioni

se il canale viene chiuso da un altro thread durante questa operazione di lettura.

se un altro thread interrompe il thread chiamante mentre l'operazione è in corso. Lo stato di interrupt del thread chiamante è impostato e il canale viene chiuso.

se il canale è chiuso.

se offset o length o se offset + length è maggiore delle dimensioni di buffers.

se si verifica un altro errore di I/O; i dettagli sono presenti nel messaggio.

se il canale non è stato aperto in una modalità che consente la lettura.

Commenti

Legge una sequenza di byte da questo canale in una sottosequenza dei buffer specificati.

Una chiamata di questo metodo tenta di leggere fino a r byte da questo canale, dove r è il numero totale di byte rimanenti della sottosequenza specificata della matrice di buffer specificata, ovvero

<blockquote>

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

</blockquote>

al momento in cui questo metodo viene richiamato.

Si supponga che venga letta una sequenza di byte di lunghezza n , dove 0 <=  n <=  r. Fino ai primi dsts[offset].remaining() byte di questa sequenza vengono trasferiti nel buffer dsts[offset], fino ai byte successivi dsts[offset+1].remaining() vengono trasferiti nel buffer dsts[offset+1]e così via, fino a quando l'intera sequenza di byte non viene trasferita nei buffer specificati. Il maggior numero possibile di byte vengono trasferiti in ogni buffer, quindi la posizione finale di ogni buffer aggiornato, ad eccezione dell'ultimo buffer aggiornato, è garantito che sia uguale al limite del buffer.

Questo metodo può essere richiamato in qualsiasi momento. Se un altro thread ha già avviato un'operazione di lettura su questo canale, tuttavia, una chiamata di questo metodo verrà bloccata fino al completamento della prima operazione.

per java.nio.channels.ScatteringByteChannel.read(java.nio.ByteBuffer[], int, int).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a