50 lines
1.4 KiB
Java
50 lines
1.4 KiB
Java
package com.pahimar.ee3.util;
|
|
|
|
import java.io.*;
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.util.zip.GZIPInputStream;
|
|
import java.util.zip.GZIPOutputStream;
|
|
|
|
public class CompressionHelper {
|
|
|
|
/**
|
|
*
|
|
* @param uncompressedString
|
|
* @return
|
|
*/
|
|
public static byte[] compress(String uncompressedString) {
|
|
|
|
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
|
|
|
try (GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream)) {
|
|
gzipOutputStream.write(uncompressedString.getBytes(StandardCharsets.UTF_8));
|
|
gzipOutputStream.close();
|
|
}
|
|
catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return byteArrayOutputStream.toByteArray();
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param compressedString
|
|
* @return
|
|
*/
|
|
public static String decompress(byte[] compressedString) {
|
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
String line;
|
|
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new GZIPInputStream(new ByteArrayInputStream(compressedString)), StandardCharsets.UTF_8))) {
|
|
while ((line = bufferedReader.readLine()) != null) {
|
|
stringBuilder.append(line);
|
|
}
|
|
}
|
|
catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return stringBuilder.toString();
|
|
}
|
|
}
|