Idioma

IGatheringByteChannel.Write Método

Definição

Sobrecargas

Nome Description
Write(ByteBuffer[])

Grava uma sequência de bytes neste canal dos buffers fornecidos.

Write(ByteBuffer[], Int32, Int32)

Grava uma sequência de bytes nesse canal de uma subsequência dos buffers fornecidos.

Write(ByteBuffer[])

Grava uma sequência de bytes neste canal dos buffers fornecidos.

[Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;)J", "GetWrite_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Write(Java.Nio.ByteBuffer[]? srcs);
[<Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;)J", "GetWrite_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Write : Java.Nio.ByteBuffer[] -> int64

Parâmetros

srcs
ByteBuffer[]

Os buffers dos quais os bytes devem ser recuperados

Retornos

O número de bytes escritos, possivelmente zero

Atributos

Exceções

se o canal for fechado por outro thread durante esta operação de gravação.

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 gravação.

Comentários

Grava uma sequência de bytes neste canal dos buffers fornecidos.

Uma invocação desse método do formulário c.write(srcs) se comporta exatamente da mesma maneira que a invocação

<blockquote>

c.write(srcs, 0, srcs.length);

</blockquote>

Java documentação para java.nio.channels.GatheringByteChannel.write(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

Write(ByteBuffer[], Int32, Int32)

Grava uma sequência de bytes nesse canal de uma subsequência dos buffers fornecidos.

[Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;II)J", "GetWrite_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Write(Java.Nio.ByteBuffer[]? srcs, int offset, int length);
[<Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;II)J", "GetWrite_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Write : Java.Nio.ByteBuffer[] * int * int -> int64

Parâmetros

srcs
ByteBuffer[]

Os buffers dos quais os bytes devem ser recuperados

offset
Int32

O deslocamento dentro da matriz de buffer do primeiro buffer do qual os bytes devem ser recuperados; deve ser não negativo e não maior que srcs.length

length
Int32

O número máximo de buffers a serem acessados; deve ser não negativo e não maior que srcs.length - offset

Retornos

O número de bytes escritos, possivelmente zero

Atributos

Exceções

se o canal for fechado por outro thread durante esta operação de gravação.

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 foi aberto para gravação.

Comentários

Grava uma sequência de bytes nesse canal de uma subsequência dos buffers fornecidos.

É feita uma tentativa de gravar até r bytes neste canal, em que r é o número total de bytes restantes na subsequência especificada da matriz de buffer fornecida, ou seja,

<blockquote>

srcs[offset].remaining()
                + srcs[offset+1].remaining()
                + ... + srcs[offset+length-1].remaining()

</blockquote>

no momento em que esse método é invocado.

Suponha que uma sequência de bytes de comprimento n seja escrita, em 0que  <=  n <=  r. Até os primeiros srcs[offset].remaining() bytes dessa sequência são gravados do buffer srcs[offset], até os próximos srcs[offset+1].remaining() bytes são gravados do buffer srcs[offset+1]e assim por diante, até que toda a sequência de bytes seja gravada. O maior número possível de bytes são gravados de cada buffer, portanto, a posição final de cada buffer atualizado, exceto o último buffer atualizado, é garantida como igual ao limite desse buffer.

A menos que especificado de outra forma, uma operação de gravação retornará somente depois de gravar todos os bytes solicitados r. Alguns tipos de canais, dependendo de seu estado, podem escrever apenas alguns dos bytes ou possivelmente nenhum. Um canal de soquete no modo de não bloqueio, por exemplo, não pode gravar mais bytes do que gratuito no buffer de saída do soquete.

Esse método pode ser invocado a qualquer momento. No entanto, se outro thread já tiver iniciado uma operação de gravação 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.GatheringByteChannel.write(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