Condividi tramite


Pipe.SourceChannel.Read Metodo

Definizione

Overload

Read(ByteBuffer)

Legge una sequenza di byte da questo canale nel buffer specificato.

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 nel buffer specificato.

[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

Parametri

dst
ByteBuffer

Buffer in cui devono essere trasferiti i byte

Restituisce

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

Implementazioni

Attributi

Commenti

Legge una sequenza di byte da questo canale nel buffer specificato.

Viene effettuato un tentativo di lettura fino a r byte dal canale, dove r è il numero di byte rimanenti nel buffer, ovvero , dst.remaining()al momento in cui questo metodo viene richiamato.

Si supponga che venga letta una sequenza di byte di lunghezza n , dove 0 <= n <= r. Questa sequenza di byte verrà trasferita nel buffer in modo che il primo byte nella sequenza sia in corrispondenza dell'indice p e l'ultimo byte sia in corrispondenza dell'indice p + n - 1, dove p è la posizione del buffer al momento in cui viene richiamato questo metodo. Al momento della restituzione della posizione del buffer sarà uguale a p + n; il limite non verrà modificato.

Un'operazione di lettura potrebbe non riempire il buffer e, di fatto, potrebbe non leggere alcun byte. Indipendentemente dal fatto che lo faccia dipende dalla natura e dallo stato del canale. Un canale socket in modalità non di blocco, ad esempio, non può leggere più byte di quanto siano immediatamente disponibili dal buffer di input del socket; analogamente, un canale di file non può leggere più byte di quanto rimanga nel file. È garantito, tuttavia, che se un canale è in modalità di blocco e c'è almeno un byte rimanente nel buffer, questo metodo verrà bloccato fino a quando non viene letto almeno un byte.

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.

Documentazione java per java.nio.channels.ReadableByteChannel.read(java.nio.ByteBuffer).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

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")]
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

Parametri

dsts
ByteBuffer[]

Buffer in cui devono essere trasferiti i byte

Restituisce

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

Implementazioni

Attributi

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>

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

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

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")]
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

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

Restituisce

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

Implementazioni

Attributi

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.

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

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a