Base64压缩解压工具类
主要代码参考 Java Gzip类 - base64压缩和解压
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import com.sun.org.apache.xml.internal.security.utils.Base64;
/**
* @ClassName ZipUtil
* @Description base64压缩工具类
* {@link "https://blog.csdn.net/lan_liang/article/details/53207845"}
* @Author hxm
* @Date 2020-02-21 10:00
**/
public final class ZipUtil
{
/**
* 压缩字符串
* @param string
* @return
*/
public static String CompressToBase64(String string){
try {
ByteArrayOutputStream os = new ByteArrayOutputStream(string.length());
GZIPOutputStream gos = new GZIPOutputStream(os);
gos.write(string.getBytes());
gos.close();
byte[] compressed = os.toByteArray();
os.close();
String result = Base64.encode(compressed);
return result;
} catch (IOException e) {
e.printStackTrace();
}
catch (Exception ex){
}
return "";
}
/**
* 解压缩
* @param textToDecode
* @return
*/
public static String DecompressToBase64(String textToDecode){
try {
byte[] compressed = Base64.decode(textToDecode);
final int BUFFER_SIZE = 32;
ByteArrayInputStream inputStream = new ByteArrayInputStream(compressed);
GZIPInputStream gis = new GZIPInputStream(inputStream, BUFFER_SIZE);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] data = new byte[BUFFER_SIZE];
int bytesRead;
while ((bytesRead = gis.read(data)) != -1) {
baos.write(data, 0, bytesRead);
}
return baos.toString("UTF-8");
}
catch (IOException e) {
e.printStackTrace();
}
catch (Exception ex){
}
return "";
}
public static void main(String[] args) {
String a = "aaabbbccc意思啦围棋";
String baseA = ZipUtil.CompressToBase64(a);
System.out.println(baseA);
System.out.println(ZipUtil.DecompressToBase64(baseA));
}
}
来源:oschina
链接:https://my.oschina.net/itazi/blog/3169124