Pipe.SourceChannel.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 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.
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.