Skip to main content

Compression Types

Built-In Types

ODS allows for many different compression formats to be used. All versions of ODS have 3 built-in options for compression:

  • No Compression
  • GZIP Compression
  • ZLIB Compression

You can pick the compression format that you want to use in the ObjectDataStructure constructor.

ObjectDataStructure ods = new ObjectDataStructure(new File("test.ods"), new GZIPCompression());

Additional Compression Types

Addons are available for specific versions. The Java version has ODSCompressionPlus, which provides additional compression types.

Custom Compression Types

ODS allows for custom compression types to be used. This is achieved by implementing the Compressor interface and returning the input streams.

import me.ryandw11.ods.compression.Compressor;

public class CustomCompression implements Compressor {
@Override
public InputStream getInputStream(InputStream file) throws IOException {
// Return your compression input stream.
return new GZIPInputStream(file);
}

@Override
public OutputStream getOutputStream(OutputStream file) throws IOException {
// Return your compression output stream.
return new GZIPOutputStream(file);
}
}

You can then use your compression format as you would with any of the built-in ones.