IScatteringByteChannel.Read Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| Read(ByteBuffer[]) |
Lê uma sequência de bytes desse canal nos buffers fornecidos. |
| Read(ByteBuffer[], Int32, Int32) |
Lê uma sequência de bytes desse canal em uma subsequência dos buffers fornecidos. |
Read(ByteBuffer[])
Lê uma sequência de bytes desse canal nos buffers fornecidos.
[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
Parâmetros
- dsts
- ByteBuffer[]
Os buffers para os quais os bytes devem ser transferidos
Retornos
O número de bytes lidos, possivelmente zero ou -1 se o canal atingiu o fim do fluxo
- Atributos
Exceções
se o canal for fechado por outro thread durante esta operação de leitura.
se outro thread interromper o thread de chamada enquanto a operação estiver em andamento. O estado de interrupção do thread de chamada é definido e o canal é fechado.
se o canal estiver fechado.
se ocorrer outro erro de E/S; os detalhes estão na mensagem.
se o canal não tiver sido aberto em um modo que permita a leitura.
Comentários
Lê uma sequência de bytes desse canal nos buffers fornecidos.
Uma invocação desse método do formulário c.read(dsts) se comporta exatamente da mesma maneira que a invocação
<blockquote>
c.read(dsts, 0, dsts.length);
</blockquote>
Java documentação para java.nio.channels.ScatteringByteChannel.read(java.nio.ByteBuffer[]).
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Aplica-se a
Read(ByteBuffer[], Int32, Int32)
Lê uma sequência de bytes desse canal em uma subsequência dos buffers fornecidos.
[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
Parâmetros
- dsts
- ByteBuffer[]
Os buffers para os quais os bytes devem ser transferidos
- offset
- Int32
O deslocamento dentro da matriz de buffer do primeiro buffer para o qual os bytes devem ser transferidos; deve ser não negativo e não maior que dsts.length
- length
- Int32
O número máximo de buffers a serem acessados; deve ser não negativo e não maior que dsts.length - offset
Retornos
O número de bytes lidos, possivelmente zero ou -1 se o canal atingiu o fim do fluxo
- Atributos
Exceções
se o canal for fechado por outro thread durante esta operação de leitura.
se outro thread interromper o thread de chamada enquanto a operação estiver em andamento. O estado de interrupção do thread de chamada é definido e o canal é fechado.
se o canal estiver fechado.
se offset ou length , ou se offset + length for maior que o tamanho de buffers.
se ocorrer outro erro de E/S; os detalhes estão na mensagem.
se o canal não tiver sido aberto em um modo que permita a leitura.
Comentários
Lê uma sequência de bytes desse canal em uma subsequência dos buffers fornecidos.
Uma invocação desse método tenta ler até r bytes deste canal, onde r é o número total de bytes restantes da subsequenteuência especificada da matriz de buffer fornecida, ou seja,
<blockquote>
dsts[offset].remaining()
+ dsts[offset+1].remaining()
+ ... + dsts[offset+length-1].remaining()
</blockquote>
no momento em que esse método é invocado.
Suponha que uma sequência de bytes de comprimento n seja lida, em 0que <= n <= r. Até os primeiros dsts[offset].remaining() bytes dessa sequência são transferidos para o buffer dsts[offset], até os próximos dsts[offset+1].remaining() bytes são transferidos para o buffer dsts[offset+1]e assim por diante, até que toda a sequência de bytes seja transferida para os buffers fornecidos. O maior número possível de bytes é transferido para cada buffer, portanto, a posição final de cada buffer atualizado, exceto o último buffer atualizado, é garantida como igual ao limite desse buffer.
Esse método pode ser invocado a qualquer momento. No entanto, se outro thread já tiver iniciado uma operação de leitura nesse canal, uma invocação desse método será bloqueada até que a primeira operação seja concluída.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.