Deflater.Deflate Método

Definição

Sobrecargas

Nome Description
Deflate(ByteBuffer)

Compacta os dados de entrada e preenche o buffer especificado com dados compactados.

Deflate(ByteBuffer, Int32)

Compacta os dados de entrada e preenche o buffer especificado com dados compactados.

Deflate(Byte[])

Compacta os dados de entrada e preenche o buffer especificado com dados compactados.

Deflate(Byte[], Int32, Int32)

Compacta os dados de entrada e preenche o buffer especificado com dados compactados.

Deflate(Byte[], Int32, Int32, Int32)

Compacta os dados de entrada e preenche o buffer especificado com dados compactados.

Deflate(ByteBuffer)

Compacta os dados de entrada e preenche o buffer especificado com dados compactados.

[Android.Runtime.Register("deflate", "(Ljava/nio/ByteBuffer;)I", "GetDeflate_Ljava_nio_ByteBuffer_Handler", ApiSince=35)]
public virtual int Deflate(Java.Nio.ByteBuffer? output);
[<Android.Runtime.Register("deflate", "(Ljava/nio/ByteBuffer;)I", "GetDeflate_Ljava_nio_ByteBuffer_Handler", ApiSince=35)>]
abstract member Deflate : Java.Nio.ByteBuffer -> int
override this.Deflate : Java.Nio.ByteBuffer -> int

Parâmetros

output
ByteBuffer

o buffer para os dados compactados

Retornos

o número real de bytes de dados compactados gravados no buffer de saída

Atributos

Comentários

Compacta os dados de entrada e preenche o buffer especificado com dados compactados. Retorna o número real de bytes de dados compactados. Um valor retornado de 0 indica que #needsInput() needsInput deve ser chamado para determinar se mais dados de entrada são necessários.

Esse método usa #NO_FLUSH como modo de liberação de compactação. Uma invocação desse método do formulário deflater.deflate(output) produz o mesmo resultado da invocação de deflater.deflate(output, Deflater.NO_FLUSH).

Adicionado em 11.

Java documentação para java.util.zip.Deflater.deflate(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

Deflate(ByteBuffer, Int32)

Compacta os dados de entrada e preenche o buffer especificado com dados compactados.

[Android.Runtime.Register("deflate", "(Ljava/nio/ByteBuffer;I)I", "GetDeflate_Ljava_nio_ByteBuffer_IHandler", ApiSince=35)]
public virtual int Deflate(Java.Nio.ByteBuffer? output, int flush);
[<Android.Runtime.Register("deflate", "(Ljava/nio/ByteBuffer;I)I", "GetDeflate_Ljava_nio_ByteBuffer_IHandler", ApiSince=35)>]
abstract member Deflate : Java.Nio.ByteBuffer * int -> int
override this.Deflate : Java.Nio.ByteBuffer * int -> int

Parâmetros

output
ByteBuffer

o buffer para os dados compactados

flush
Int32

o modo de liberação de compactação

Retornos

o número real de bytes de dados compactados gravados no buffer de saída

Atributos

Comentários

Compacta os dados de entrada e preenche o buffer especificado com dados compactados. Retorna o número real de bytes de dados compactados.

O modo de liberação de compactação é um dos três modos a seguir:

<ul><li>#NO_FLUSH: permite que o deflater decida quantos dados devem ser acumulados, antes de produzir a saída, a fim de obter a melhor compactação (deve ser usada no cenário de uso normal). Um valor retornado de 0 nesse modo de liberação indica que #needsInput() deve ser chamado para determinar se mais dados de entrada são necessários.

<li>#SYNC_FLUSH: toda a saída pendente no deflater é liberada, para o buffer de saída especificado, para que um inflador que funcione em dados compactados possa obter todos os dados de entrada disponíveis até agora (em particular, os #needsInput() retornos true após essa invocação, se houver espaço de saída suficiente). A liberação com #SYNC_FLUSH pode degradar a compactação para alguns algoritmos de compactação e, portanto, deve ser usada somente quando necessário.

<li>#FULL_FLUSH: toda a saída pendente é liberada como com #SYNC_FLUSH. O estado de compactação é redefinido para que o inflador que funciona nos dados de saída compactados possa ser reiniciado a partir desse ponto se dados compactados anteriores tiverem sido danificados ou se o acesso aleatório for desejado. Usar #FULL_FLUSH com muita frequência pode prejudicar seriamente a compactação. </ul>

No caso ou #FULL_FLUSH#SYNC_FLUSH, se o valor retornado for igual ao espaço restante byteBuffer#remaining() do buffer, esse método deverá ser invocado novamente com o mesmo flush parâmetro e mais espaço de saída. Verifique se o buffer tem pelo menos 6 bytes de espaço restante para evitar que o marcador de liberação (5 bytes) seja enviado repetidamente para o buffer de saída sempre que esse método for invocado.

Com o êxito, a posição do buffer de bytes fornecido output será avançada pelo número de bytes que foram produzidos pela operação, que é igual ao número retornado por esse método.

Se o #setInput(ByteBuffer) método foi chamado para fornecer um buffer para entrada, a posição do buffer de entrada será avançada pelo número de bytes consumidos por essa operação.

Adicionado em 11.

Java documentação para java.util.zip.Deflater.deflate(java.nio.ByteBuffer, 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

Deflate(Byte[])

Compacta os dados de entrada e preenche o buffer especificado com dados compactados.

[Android.Runtime.Register("deflate", "([B)I", "GetDeflate_arrayBHandler")]
public virtual int Deflate(byte[]? b);
[Android.Runtime.Register("deflate", "([B)I", "GetDeflate_arrayBHandler")]
public virtual int Deflate(byte[]? output);
[<Android.Runtime.Register("deflate", "([B)I", "GetDeflate_arrayBHandler")>]
abstract member Deflate : byte[] -> int
override this.Deflate : byte[] -> int

Parâmetros

boutput
Byte[]

o buffer para os dados compactados

Retornos

o número real de bytes de dados compactados gravados no buffer de saída

Atributos

Comentários

Compacta os dados de entrada e preenche o buffer especificado com dados compactados. Retorna o número real de bytes de dados compactados. Um valor retornado de 0 indica que #needsInput() needsInput deve ser chamado para determinar se mais dados de entrada são necessários.

Esse método usa #NO_FLUSH como modo de liberação de compactação. Uma invocação desse método do formulário deflater.deflate(b) produz o mesmo resultado da invocação de deflater.deflate(b, 0, b.length, Deflater.NO_FLUSH).

Java documentação para java.util.zip.Deflater.deflate(byte[]).

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

Deflate(Byte[], Int32, Int32)

Compacta os dados de entrada e preenche o buffer especificado com dados compactados.

[Android.Runtime.Register("deflate", "([BII)I", "GetDeflate_arrayBIIHandler")]
public virtual int Deflate(byte[]? b, int off, int len);
[Android.Runtime.Register("deflate", "([BII)I", "GetDeflate_arrayBIIHandler")]
public virtual int Deflate(byte[]? output, int off, int len);
[<Android.Runtime.Register("deflate", "([BII)I", "GetDeflate_arrayBIIHandler")>]
abstract member Deflate : byte[] * int * int -> int
override this.Deflate : byte[] * int * int -> int

Parâmetros

boutput
Byte[]

o buffer para os dados compactados

off
Int32

o deslocamento inicial dos dados

len
Int32

o número máximo de bytes de dados compactados

Retornos

o número real de bytes de dados compactados gravados no buffer de saída

Atributos

Comentários

Compacta os dados de entrada e preenche o buffer especificado com dados compactados. Retorna o número real de bytes de dados compactados. Um valor retornado de 0 indica que #needsInput() needsInput deve ser chamado para determinar se mais dados de entrada são necessários.

Esse método usa #NO_FLUSH como modo de liberação de compactação. Uma invocação desse método do formulário deflater.deflate(b, off, len) produz o mesmo resultado da invocação de deflater.deflate(b, off, len, Deflater.NO_FLUSH).

Java documentação para java.util.zip.Deflater.deflate(byte[], 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

Deflate(Byte[], Int32, Int32, Int32)

Compacta os dados de entrada e preenche o buffer especificado com dados compactados.

[Android.Runtime.Register("deflate", "([BIII)I", "GetDeflate_arrayBIIIHandler")]
public virtual int Deflate(byte[]? b, int off, int len, int flush);
[Android.Runtime.Register("deflate", "([BIII)I", "GetDeflate_arrayBIIIHandler")]
public virtual int Deflate(byte[]? output, int off, int len, int flush);
[<Android.Runtime.Register("deflate", "([BIII)I", "GetDeflate_arrayBIIIHandler")>]
abstract member Deflate : byte[] * int * int * int -> int
override this.Deflate : byte[] * int * int * int -> int

Parâmetros

boutput
Byte[]

o buffer para os dados compactados

off
Int32

o deslocamento inicial dos dados

len
Int32

o número máximo de bytes de dados compactados

flush
Int32

o modo de liberação de compactação

Retornos

o número real de bytes de dados compactados gravados no buffer de saída

Atributos

Exceções

se flush for inválido.

Comentários

Compacta os dados de entrada e preenche o buffer especificado com dados compactados. Retorna o número real de bytes de dados compactados.

O modo de liberação de compactação é um dos três modos a seguir:

<ul><li>#NO_FLUSH: permite que o deflater decida quantos dados devem ser acumulados, antes de produzir a saída, a fim de obter a melhor compactação (deve ser usada no cenário de uso normal). Um valor retornado de 0 nesse modo de liberação indica que #needsInput() deve ser chamado para determinar se mais dados de entrada são necessários.

<li>#SYNC_FLUSH: toda a saída pendente no deflater é liberada, para o buffer de saída especificado, para que um inflador que funcione em dados compactados possa obter todos os dados de entrada disponíveis até agora (em particular, os #needsInput() retornos true após essa invocação, se houver espaço de saída suficiente). A liberação com #SYNC_FLUSH pode degradar a compactação para alguns algoritmos de compactação e, portanto, deve ser usada somente quando necessário.

<li>#FULL_FLUSH: toda a saída pendente é liberada como com #SYNC_FLUSH. O estado de compactação é redefinido para que o inflador que funciona nos dados de saída compactados possa ser reiniciado a partir desse ponto se dados compactados anteriores tiverem sido danificados ou se o acesso aleatório for desejado. Usar #FULL_FLUSH com muita frequência pode prejudicar seriamente a compactação. </ul>

No caso de #FULL_FLUSH ou, se o valor retornado forlen, o espaço disponível no buffer bde saída, esse método deverá ser invocado novamente com o mesmo flush parâmetro e mais espaço de #SYNC_FLUSHsaída. Verifique se isso é maior que 6 para evitar que o marcador de liberação (5 bytes) seja gerado repetidamente para o buffer de saída sempre que len esse método for invocado.

Se o #setInput(ByteBuffer) método foi chamado para fornecer um buffer para entrada, a posição do buffer de entrada será avançada pelo número de bytes consumidos por essa operação.

Adicionado em 1.7.

Java documentação para java.util.zip.Deflater.deflate(byte[], int, 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