Idioma

Pipe.SourceChannel.Read Método

Definição

Sobrecargas

Nome Description
Read(ByteBuffer)

Lê uma sequência de bytes desse canal no buffer fornecido.

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 no buffer fornecido.

[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

Parâmetros

dst
ByteBuffer

O buffer para o qual os bytes devem ser transferidos

Retornos

O número de bytes lidos, possivelmente zero ou -1 se o canal atingiu o fim do fluxo

Implementações

Atributos

Comentários

Lê uma sequência de bytes desse canal no buffer fornecido.

É feita uma tentativa de ler até r bytes do canal, em que r é o número de bytes restantes no buffer, ou seja, dst.remaining()no momento em que esse método é invocado.

Suponha que uma sequência de bytes de comprimento n seja lida, em 0que  <=  n <=  r. Essa sequência de bytes será transferida para o buffer para que o primeiro byte na sequência esteja no índice p e o último byte esteja no índice p +  n - , em que1p é a posição do buffer no momento em que esse método é invocado. Ao retornar, a posição do buffer será igual a p +  n; seu limite não terá sido alterado.

Uma operação de leitura pode não preencher o buffer e, na verdade, pode não ler nenhum bytes. Se isso depende ou não da natureza e do estado do canal. Um canal de soquete no modo de não bloqueio, por exemplo, não pode ler mais bytes do que está disponível imediatamente no buffer de entrada do soquete; da mesma forma, um canal de arquivo não pode ler mais bytes do que permanecer no arquivo. No entanto, é garantido que, se um canal estiver no modo de bloqueio e houver pelo menos um byte restante no buffer, esse método será bloqueado até que pelo menos um byte seja lido.

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.ReadableByteChannel.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[])

Lê uma sequência de bytes desse canal nos buffers fornecidos.

[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

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

Implementações

Atributos

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

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

Implementações

Atributos

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