Class CompressorStreamFactory

java.lang.Object
kala.compress.compressors.CompressorStreamFactory
All Implemented Interfaces:
CompressorStreamProvider

public class CompressorStreamFactory extends Object implements CompressorStreamProvider

Creates a Compressor[In|Out]putStreams from names. To add other implementations you should extend CompressorStreamFactory and override the appropriate methods (and call their implementation from super of course).

Example (Compressing a file):

 final OutputStream out = Files.newOutputStream(output.toPath());
 CompressorOutputStream cos = new CompressorStreamFactory().createCompressorOutputStream(CompressorStreamFactory.BZIP2, out);
 IOUtils.copy(Files.newInputStream(input.toPath()), cos);
 cos.close();
 

Example (Decompressing a file):

 final InputStream is = Files.newInputStream(input.toPath());
 CompressorInputStream in = new CompressorStreamFactory().createCompressorInputStream(CompressorStreamFactory.BZIP2, is);
 IOUtils.copy(in, Files.newOutputStream(output.toPath()));
 in.close();
 
  • Field Details

    • BROTLI

      public static final String BROTLI
      Constant (value "br") used to identify the BROTLI compression algorithm.
      Since:
      1.14
      See Also:
    • BZIP2

      public static final String BZIP2
      Constant (value "bzip2") used to identify the BZIP2 compression algorithm.
      Since:
      1.1
      See Also:
    • GZIP

      public static final String GZIP
      Constant (value "gz") used to identify the GZIP compression algorithm.
      Since:
      1.1
      See Also:
    • PACK200

      public static final String PACK200
      Constant (value "pack200") used to identify the PACK200 compression algorithm.
      Since:
      1.3
      See Also:
    • XZ

      public static final String XZ
      Constant (value "xz") used to identify the XZ compression method.
      Since:
      1.4
      See Also:
    • LZMA

      public static final String LZMA
      Constant (value "lzma") used to identify the LZMA compression method.
      Since:
      1.6
      See Also:
    • SNAPPY_FRAMED

      public static final String SNAPPY_FRAMED
      Constant (value "snappy-framed") used to identify the "framed" Snappy compression method.
      Since:
      1.7
      See Also:
    • SNAPPY_RAW

      public static final String SNAPPY_RAW
      Constant (value "snappy-raw") used to identify the "raw" Snappy compression method. Not supported as an output stream type.
      Since:
      1.7
      See Also:
    • Z

      public static final String Z
      Constant (value "z") used to identify the traditional UNIX compress method. Not supported as an output stream type.
      Since:
      1.7
      See Also:
    • DEFLATE

      public static final String DEFLATE
      Constant (value "deflate") used to identify the Deflate compress method.
      Since:
      1.9
      See Also:
    • DEFLATE64

      public static final String DEFLATE64
      Constant (value "deflate64") used to identify the Deflate64 compress method.
      Since:
      1.16
      See Also:
    • LZ4_BLOCK

      public static final String LZ4_BLOCK
      Constant (value "lz4-block") used to identify the block LZ4 compression method.
      Since:
      1.14
      See Also:
    • LZ4_FRAMED

      public static final String LZ4_FRAMED
      Constant (value "lz4-framed") used to identify the frame LZ4 compression method.
      Since:
      1.14
      See Also:
    • ZSTANDARD

      public static final String ZSTANDARD
      Constant (value "zstd") used to identify the Zstandard compression algorithm. Not supported as an output stream type.
      Since:
      1.16
      See Also:
    • BUILTIN_COMPRESSORS

      private static final CompressorStreamFactory.BuiltinCompressor[] BUILTIN_COMPRESSORS
    • ALL_NAMES

      private static final Set<String> ALL_NAMES
    • OUTPUT_NAMES

      private static final Set<String> OUTPUT_NAMES
    • DEFAULT

      public static final CompressorStreamFactory DEFAULT
      Since:
      1.27.1-0
    • compressorInputStreamProviders

      private final SortedMap<String,CompressorStreamProvider> compressorInputStreamProviders
    • compressorOutputStreamProviders

      private final SortedMap<String,CompressorStreamProvider> compressorOutputStreamProviders
    • inputStreamCompressorNames

      private final Set<String> inputStreamCompressorNames
    • outputStreamCompressorNames

      private final Set<String> outputStreamCompressorNames
    • decompressConcatenated

      private final boolean decompressConcatenated
      If true, decompress until the end of the input. If false, stop after the first stream and leave the input position to point to the next byte after the stream
    • memoryLimitInKb

      private final int memoryLimitInKb
  • Constructor Details

    • CompressorStreamFactory

      public CompressorStreamFactory()
      Constructs an instance with the decompress Concatenated option set to false.
    • CompressorStreamFactory

      public CompressorStreamFactory(boolean decompressUntilEOF)
      Constructs an instance with the provided decompress Concatenated option.
      Parameters:
      decompressUntilEOF - if true, decompress until the end of the input; if false, stop after the first stream and leave the input position to point to the next byte after the stream. This setting applies to the gzip, bzip2 and XZ formats only.
      Since:
      1.10
    • CompressorStreamFactory

      public CompressorStreamFactory(boolean decompressUntilEOF, int memoryLimitInKb)
      Constructs an instance with the provided decompress Concatenated option.
      Parameters:
      decompressUntilEOF - if true, decompress until the end of the input; if false, stop after the first stream and leave the input position to point to the next byte after the stream. This setting applies to the gzip, bzip2 and XZ formats only.
      memoryLimitInKb - Some streams require allocation of potentially significant byte arrays/tables, and they can offer checks to prevent OOMs on corrupt files. Set the maximum allowed memory allocation in KBs.
      Since:
      1.14
  • Method Details