2021年2月3日星期三

ZSTD String compression using luben

I have been struggling to compress a regular string to ZSTD format using the Luben library (v1.4.0-1). I do the following:

byte[] zstdBytes = Zstd.compress(payload.getBytes(StandardCharsets.UTF_8));  ZstdInputStream zstdInputStream= new ZstdInputStream(new ByteArrayInputStream(zstdBytes));  

However while reading the zstdInputStream I get the following error:

java.io.IOException: Decompression error: Unknown frame descriptor     at com.github.luben.zstd.ZstdInputStream.readInternal(ZstdInputStream.java:142)     at com.github.luben.zstd.ZstdInputStream.read(ZstdInputStream.java:102)     at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)     at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)     at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)     at java.io.InputStreamReader.read(InputStreamReader.java:184)     at java.io.BufferedReader.fill(BufferedReader.java:161)     at java.io.BufferedReader.read(BufferedReader.java:182)  

My reading of the zstdInputStream code is as follows:

try (ZstdInputStream zis = new ZstdInputStream(new UncloseableStream(payload))) {          try (Reader reader = new BufferedReader(new InputStreamReader(zis))) {                int data = reader.read();              while (data != -1) {                  System.out.print((char) data);                  data = reader.read();              }          }  }  
https://stackoverflow.com/questions/66038814/zstd-string-compression-using-luben February 04, 2021 at 11:04AM

没有评论:

发表评论