Deflate

Select deflate with Compression.deflate(). It writes a zlib header by default. Decompressor never detects deflate, because the stream has no reliable signature: pass Compression.deflate() explicitly. A stream with no detectable signature passes through unchanged, so Decompressor.builder(p) on deflate data returns the compressed bytes: use Decompressor.builder(p, Compression.deflate()).

Options: level and zlibHeader; zlibHeader(false) reads and writes raw deflate.

Decompressor enforces the default limits; a stream that expands past a ratio of 100 after the first MiB throws LimitExceededException.

Example Usage

Deflate Compression
try (Compressor compressor = Compressor.builder(
                Path.of("example.deflate"),
                Compression.deflate().level(9).zlibHeader(true))
        .build()) {
    compressor.write(Path.of("path/to/file.txt"));
}
Deflate Decompression
try (Decompressor decompressor = Decompressor.builder(Path.of("example.deflate"), Compression.deflate())
        .build()) {
    decompressor.write(Path.of("path/to/file.txt"));
}