Class LZWCompressor

java.lang.Object
AEDs3.Compression.Compressors.LZWCompressor
All Implemented Interfaces:
StreamCompressor

public class LZWCompressor extends Object implements 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.
  • Field Details

    • BITS_PER_INDEX

      public static final int BITS_PER_INDEX
      Tamanho do índice em bits utilizado no algoritmo LZW.
      See Also:
  • Constructor Details

    • LZWCompressor

      public LZWCompressor()
  • Method Details

    • compress

      public void compress(InputStream in, OutputStream out) throws IOException
      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:
      compress in interface StreamCompressor
      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

      public void decompress(InputStream in, OutputStream out) throws IOException
      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:
      decompress in interface StreamCompressor
      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.