使用GZIP解压缩数据,以及解决中文乱码
来源:互联网 发布:linux中tail命令 编辑:程序博客网 时间:2024/06/07 03:39
package com.io.test;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.util.zip.GZIPInputStream;import java.util.zip.GZIPOutputStream;/** * 使用GZIPOutputStream压缩字符串和GZIPInputStream解压缩字符串 * 注意:压缩大数据有效果,如果数据量小的话,压缩后的数据,可能会变大 * */public class CompressAndUnCpmpressTest {// public static String data = "askjkshf";//数据量很小,压缩后的数据会比压缩前大//这个的数据量比较大,效果比较明显,并且数据量越大,效果越明显public static String data = "哈哈askjkshfsahfsahshfnsafsahfsahfsnfskfhsalhfsanflsakhflsahflskaffklsjflskajfsahfkshfksahfskalhfsajhflsahfasddsdsfdsadfsaf";public static void main(String[] args) throws Exception {//判断解压缩前后的数据是否相同System.out.println(unCompress(compress(data)).equals(data));}/*** 对字符串数据进行压缩* @param data 元数据* @return String*/private static String compress(String data) throws Exception{if (null == data || "".equals(data) || data.length() == 0) {return data;}ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();//带有缓存功能的字节输出流GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream);System.out.println("压缩前的数据大小:" + data.getBytes().length);gzipOutputStream.write(data.getBytes());gzipOutputStream.close();String compressData = byteArrayOutputStream.toString("ISO-8859-1");System.out.println("压缩后的数据大小:" + byteArrayOutputStream.toByteArray().length);byteArrayOutputStream.close();//System.out.println("压缩后的数据:" + compressData);return compressData;}/*** 对压缩后的数据,进行解压缩* @param data* @return String*/public static String unCompress(String data) throws Exception {String retStr = "";if (null == data || "".equals(data) || data.length() == 0) {return data;}ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(data.getBytes("ISO-8859-1"));GZIPInputStream gzipInputStream = new GZIPInputStream(byteArrayInputStream);byte [] b = new byte [256];int length = -1;while (-1 != (length = gzipInputStream.read(b)) ) {byteArrayOutputStream.write(b, 0, length);}retStr = byteArrayOutputStream.toString("UTF-8");byteArrayOutputStream.close();byteArrayInputStream.close();gzipInputStream.close();System.out.println("解压缩后的数据为:" + retStr);return retStr;}}
阅读全文
0 0
- 使用GZIP解压缩数据,以及解决中文乱码
- C解压缩gzip数据
- gzip压缩解压缩数据
- 解压缩zip文件(解决中文乱码)
- java解压缩文件,解决中文乱码。
- spring boot新手教程之使用FastJson解析JSON数据以及解决返回中文乱码问题
- 使用GZip解压缩文件
- gzip解压缩命令使用
- zip解压中文乱码解决与使用ant实现zip解压缩
- zip解压中文乱码解决与使用ant实现zip解压缩
- servlet gzip 中文乱码
- Eclipse中javadoc的使用以及中文乱码的解决
- Eclipse中javadoc的使用以及中文乱码的解决
- Eclipse中javadoc的使用以及中文乱码的解决
- javadoc命令的使用 以及解决中文编码乱码
- ubuntu下解决解压缩出现中文乱码问题
- Java 压缩、解压缩文件(中文乱码问题已解决)
- 解决Android下解压缩文件中文路径乱码
- Selenium learning key points summary
- hibernate需要的jar包及其作用
- a64_7.1android平板更改状态栏底部导航栏navgationBar颜色
- ios WKWebView 与 JS 交互实战技巧
- swing重绘按钮为任意形状
- 使用GZIP解压缩数据,以及解决中文乱码
- tensorflow c/c++库使用方法
- Java 线程 4
- 拉里·埃里森亲自支招,数据库自动化之后,DBA何去何从?
- 关于ImageLoader的使用将图片改变为圆形
- 1190: [HNOI2007]梦幻岛宝珠
- Vue + ElementUI 手撸后台管理网站基本框架(二)权限控制
- 蓝桥杯:世纪末的星期天
- 机器学习算法之逻辑回归