All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fi.evolver.utils.GzipUtils Maven / Gradle / Ivy

There is a newer version: 3.5.0
Show newest version
package fi.evolver.utils;

import java.io.*;
import java.nio.charset.Charset;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;

import org.apache.commons.io.IOUtils;
import org.apache.commons.io.input.ReaderInputStream;

public class GzipUtils {

	private GzipUtils() { }


	public static byte[] zip(String text, Charset charset) {
		if (text == null)
			return null;

		return zip(new ReaderInputStream(new StringReader(text), charset));
	}


	public static byte[] zip(byte[] data) {
		if (data == null)
			return null;

		return zip(new ByteArrayInputStream(data));
	}


	public static byte[] zip(InputStream input) {
		ByteArrayOutputStream bytes = new ByteArrayOutputStream();
		try (GZIPOutputStream out = new GZIPOutputStream(bytes)) {
			IOUtils.copy(input, out);
		}
		catch (IOException e) {
			throw new UncheckedIOException(e);
		}

		return bytes.toByteArray();
	}


	public static String unzip(byte[] data, Charset charset) {
		if (data == null)
			return null;

		try (GZIPInputStream zip = new GZIPInputStream(new ByteArrayInputStream(data))) {
			return IOUtils.toString(zip, charset);
		}
		catch (IOException e) {
			throw new UncheckedIOException(e);
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy