GzipUtil 压缩和加压工具
/** * 压缩字符串 * @param str * @param charest * @return * @throws IOException * @throws UnsupportedEncodingException */ public static byte[] compress(String str,String charset) throws IOException, UnsupportedEncodingException { Assert.notNull(str, " null compress error "); ByteArrayOutputStream out = new ByteArrayOutputStream(); GZIPOutputStream gzip = new GZIPOutputStream(out); try{ gzip.write(str.getBytes(charset)); gzip.close(); return out.toByteArray(); }catch(Exception e){ throw new IOException(e); }finally{ FileUtil.close(gzip); FileUtil.close(out); } }
/** * 解压缩字符串 * @param str * @param charest * @return * @throws IOException * @throws UnsupportedEncodingException * @throws FileNotFoundException */ public static byte[] uncompress(InputStream in)throws IOException, UnsupportedEncodingException,FileNotFoundException { ByteArrayOutputStream out = new ByteArrayOutputStream(); GZIPInputStream gunzip = new GZIPInputStream(in); try{ byte[] buffer = new byte[256]; int n; while ((n = gunzip.read(buffer)) >= 0) { out.write(buffer, 0, n); } return out.toByteArray(); }catch(Exception e){ throw new IOException(e); }finally{ FileUtil.close(out); FileUtil.close(gunzip); FileUtil.close(in); } }
controller压缩数据后 使用HttpServletResponse response 输出数据
byte[] _byte=GzipUtil.compress(json,"UTF-8"); response.getOutputStream().write(_byte); response.getOutputStream().flush(); response.getOutputStream().close();
使用GZIP压缩接口的报文,达到节省流量的目的。,布布扣,bubuko.com
时间: 2024-10-24 23:29:29