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"));
}