java数据压缩
package com.istrong.noticeboard.utils; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.Base64; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; /** * @program: notice_board_platform * @ClassName compressUtil * @description: 数据压缩 * @author: 黄涛 * @create: 2024-12-10 10:02 * @Version 1.0 **/ public class CompressUtil { /** * 使用gzip压缩字符串 * * @param originString 要压缩的字符串 * @return 压缩后的字符串 */ public static String compress(String originString) { if (originString == null || originString.length() == 0) { return originString; } ByteArrayOutputStream out = new ByteArrayOutputStream(); try ( GZIPOutputStream gzip = new GZIPOutputStream(out); ) { gzip.write(originString.getBytes()); } catch (Exception e) { e.printStackTrace(); } return Base64.getEncoder().encodeToString(out.toByteArray()); } /** * 使用gzip解压缩 * * @param compressedString 压缩字符串 * @return */ public static String uncompress(String compressedString) { if (compressedString == null || compressedString.length() == 0) { return null; } ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] compressedByte = new byte[0]; try { compressedByte = Base64.getDecoder().decode(compressedString); } catch (Exception e) { e.printStackTrace(); } String originString = null; try ( ByteArrayInputStream in = new ByteArrayInputStream(compressedByte); GZIPInputStream ginzip = new GZIPInputStream(in); ) { byte[] buffer = new byte[1024]; int offset = -1; while ((offset = ginzip.read(buffer)) != -1) { out.write(buffer, 0, offset); } originString = out.toString(); } catch (IOException e) { e.printStackTrace(); } return originString; } }
吾乃代码搬运工,侵联删
浙公网安备 33010602011771号