diff --git a/src/main/java/io/airlift/compress/zstd/ZstdOutputStream.java b/src/main/java/io/airlift/compress/zstd/ZstdOutputStream.java index 90a2236c..459f6de8 100644 --- a/src/main/java/io/airlift/compress/zstd/ZstdOutputStream.java +++ b/src/main/java/io/airlift/compress/zstd/ZstdOutputStream.java @@ -45,11 +45,19 @@ public class ZstdOutputStream private boolean closed; + public ZstdOutputStream(OutputStream outputStream) throws IOException + { + this(outputStream, DEFAULT_COMPRESSION_LEVEL); + } + + + public ZstdOutputStream(OutputStream outputStream, int compressionLevel) + throws IOException { this.outputStream = requireNonNull(outputStream, "outputStream is null"); - this.context = new CompressionContext(CompressionParameters.compute(DEFAULT_COMPRESSION_LEVEL, -1), ARRAY_BYTE_BASE_OFFSET, Integer.MAX_VALUE); + this.context = new CompressionContext(CompressionParameters.compute(compressionLevel, -1), ARRAY_BYTE_BASE_OFFSET, Integer.MAX_VALUE); this.maxBufferSize = context.parameters.getWindowSize() * 4; // create output buffer large enough for a single block