Pipe.SourceChannel.Read Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.
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.