0

I have .bz file contents in s3 bucket.

Using S3Object , I'm able to read the file :

S3Object object = s3.getObject(bucket, path);
S3ObjectInputStream inputStream = object.getObjectContent();

Now I want to uncompress this content.

Tried, converting using the below code, but it is still giving me machine readable text but not english text.

    String text = new BufferedReader(
      new InputStreamReader(inputStream, StandardCharsets.UTF_8))
        .lines()
        .collect(Collectors.joining("\n"));

how do I get the uncompressed text here.

1 Answers1

1

You could use a library.

For example Apache Commons Compress.

S3Object object = s3.getObject(bucket, path);
S3ObjectInputStream inputStream = object.getObjectContent();

BZip2CompressorInputStream bzInputStream = new BZip2CompressorInputStream(inputStream);

// Then just write to a string.
// This is Java 9+.

String plaintext = new String(bzInputStream.readAllBytes(), StandardCharsets.UTF_8);
Oliver
  • 1,465
  • 4
  • 17