You are viewing the documentation for a prerelease version.
View Latest
Snappy
Snappy support needs no extra dependency. Compress4J provides two stream types, because they are different formats: the framed format (.sz, used for files and streams) and the raw format, a single block.
The raw format stores the uncompressed length first, so SnappyRawCompressor.builder(…) requires it as an argument and rejects a negative value with an IllegalArgumentException.
Example Usage
Framed Snappy Compression
try (SnappyFramedCompressor snappyCompressor =
SnappyFramedCompressor.builder(Path.of("example.sz")).build()) {
snappyCompressor.write(Path.of("path/to/file.txt"));
}
Framed Snappy Decompression
try (SnappyFramedDecompressor snappyDecompressor =
SnappyFramedDecompressor.builder(Path.of("example.sz")).build()) {
snappyDecompressor.write(Path.of("path/to/file.txt"));
}
Raw Snappy Compression
Path source = Path.of("path/to/file.txt");
try (SnappyRawCompressor snappyCompressor = SnappyRawCompressor.builder(
Path.of("example.snappy"), Files.size(source))
.build()) {
snappyCompressor.write(source);
}
Raw Snappy Decompression
try (SnappyRawDecompressor snappyDecompressor =
SnappyRawDecompressor.builder(Path.of("example.snappy")).build()) {
snappyDecompressor.write(Path.of("path/to/file.txt"));
}
Want to help? Learn how to contribute to the Compress4J docs ›