Allow specifying Zstandard compression level
ZstdCompressorOutputStream allows to compress data using Zstandard, but the default compression level of 3 is hard-coded.
Programs that wish to use a different compression level must reimplement ZstdCompressorOutputStream.
I suggest we add a constructor that takes a compression level and passes it to
`new ZstdOutputStream(...)`.
diff --git a/src/main/java/org/apache/commons/compress/compressors/zstandard/ZstdCompressorOutputStream.java b/src/main/java/org/apache/commons/compress/compressors/zstandard/ZstdCompressorOutputStream.java
index b54dfa7..3a393e9 100644
--- a/src/main/java/org/apache/commons/compress/compressors/zstandard/ZstdCompressorOutputStream.java
+++ b/src/main/java/org/apache/commons/compress/compressors/zstandard/ZstdCompressorOutputStream.java
@@ -34,8 +34,20 @@ public class ZstdCompressorOutputStream extends CompressorOutputStream {
private final ZstdOutputStream encOS;
- public ZstdCompressorOutputStream(final OutputStream out) throws IOException {
- this.encOS = new ZstdOutputStream(out);
+ public ZstdCompressorOutputStream(final OutputStream outStream, int level, boolean closeFrameOnFlush, boolean useChecksum) throws IOException {
+ this.encOS = new ZstdOutputStream(outStream, level, closeFrameOnFlush, useChecksum);
+ }
+
+ public ZstdCompressorOutputStream(final OutputStream outStream, int level, boolean closeFrameOnFlush) throws IOException {
+ this.encOS = new ZstdOutputStream(outStream, level, closeFrameOnFlush);
+ }
+
+ public ZstdCompressorOutputStream(final OutputStream outStream, int level) throws IOException {
+ this.encOS = new ZstdOutputStream(outStream, level);
+ }
+
+ public ZstdCompressorOutputStream(final OutputStream outStream) throws IOException {
+ this.encOS = new ZstdOutputStream(outStream);
}
@Override