Deflater.Deflate 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 |
|---|---|
| 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.