Class LZWCompressor
java.lang.Object
AEDs3.Compression.Compressors.LZWCompressor
- All Implemented Interfaces:
StreamCompressor
Esta classe implementa o algoritmo de compressão LZW para arquivos binários.
Nesta versão, os métodos compress e decompress operam sobre streams, lendo e
escrevendo bits de forma incremental para minimizar o uso de memória.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classClasse auxiliar para representar uma sequência imutável de bytes. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intTamanho do índice em bits utilizado no algoritmo LZW. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcompress(InputStream in, OutputStream out) Comprime os dados lidos do InputStream utilizando o algoritmo LZW e os escreve no OutputStream.voiddecompress(InputStream in, OutputStream out) Descomprime os dados lidos do InputStream utilizando o algoritmo LZW e os escreve no OutputStream.
-
Field Details
-
BITS_PER_INDEX
public static final int BITS_PER_INDEXTamanho do índice em bits utilizado no algoritmo LZW.- See Also:
-
-
Constructor Details
-
LZWCompressor
public LZWCompressor()
-
-
Method Details
-
compress
Comprime os dados lidos do InputStream utilizando o algoritmo LZW e os escreve no OutputStream. As streams são processadas de forma incremental, evitando a carga de todos os dados em memória.- Specified by:
compressin interfaceStreamCompressor- Parameters:
in- Stream de entrada com os dados originais.out- Stream de saída onde os dados comprimidos serão escritos.- Throws:
IOException- Se ocorrer um erro de I/O.
-
decompress
Descomprime os dados lidos do InputStream utilizando o algoritmo LZW e os escreve no OutputStream. A leitura dos códigos é feita de forma incremental, de modo que apenas os bits necessários sejam carregados em memória a cada momento.- Specified by:
decompressin interfaceStreamCompressor- Parameters:
in- Stream de entrada com os dados comprimidos.out- Stream de saída onde os dados descomprimidos serão escritos.- Throws:
IOException- Se ocorrer um erro de I/O.
-