IScatteringByteChannel.Read Método

Definição

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.

Java documentação para java.nio.channels.ScatteringByteChannel.read(java.nio.ByteBuffer[], int, int).

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