public static void main(String[] args) throws Exception{
String str ="xflush3.0个人感觉最大的特点就是监控配置非常灵活,从日志的格式定义、收集、配置,都可以自定义;这样对于老应用的打点日志,不需要关心规则的定义就可以平滑的接入该平台。 本篇幅以AE detail的应用为例,介绍一部分业务监控规则的配置方式以及遇到的一些坑。";
System.out.println("\n原始的字符串为------->" + str);
float len0=str.length();
System.out.println("原始的字符串长度为------->"+len0);

String ys = compress(str);
System.out.println("\n压缩后的字符串为----->" + ys);
float len1=ys.length();
System.out.println("压缩后的字符串长度为----->" + len1);

String jy = unCompress(ys);
System.out.println("\n解压缩后的字符串为--->" + jy);
System.out.println("解压缩后的字符串长度为--->"+jy.length());

System.out.println("\n压缩比例为"+len1/len0);

//判断
if(str.equals(jy)){
System.out.println("先压缩再解压以后字符串和原来的是一模一样的");
}
}
/**
* 字符串的压缩
*
* @param str
* 待压缩的字符串
* @return 返回压缩后的字符串
* @throws IOException
*/
public static String compress(String str) throws IOException {
if (null == str || str.length() <= 0) {
return str;
}
// 创建一个新的 byte 数组输出流
ByteArrayOutputStream out = new ByteArrayOutputStream();
// 使用默认缓冲区大小创建新的输出流
GZIPOutputStream gzip = new GZIPOutputStream(out);
// 将 b.length 个字节写入此输出流
gzip.write(str.getBytes());
gzip.close();
// 使用指定的 charsetName,通过解码字节将缓冲区内容转换为字符串
return out.toString("ISO-8859-1");
}

/**
* 字符串的解压
*
* @param str
* 对字符串解压
* @return 返回解压缩后的字符串
* @throws IOException
*/
public static String unCompress(String str) throws IOException {
if (null == str || str.length() <= 0) {
return str;
}
// 创建一个新的 byte 数组输出流
ByteArrayOutputStream out = new ByteArrayOutputStream();
// 创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组
ByteArrayInputStream in = new ByteArrayInputStream(str
.getBytes("ISO-8859-1"));
// 使用默认缓冲区大小创建新的输入流
GZIPInputStream gzip = new GZIPInputStream(in);
byte[] buffer = new byte[256];
int n = 0;
while ((n = gzip.read(buffer)) >= 0) {// 将未压缩数据读入字节数组
// 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此 byte数组输出流
out.write(buffer, 0, n);
}
// 使用指定的 charsetName,通过解码字节将缓冲区内容转换为字符串
return out.toString("UTF-8");
}

转载于:https://www.cnblogs.com/liu-bei/p/4719124.html

Java 压缩解压字符串(支持中文)相关推荐

  1. java 7zip解压_Apache Commons Compress介绍-JAVA压缩解压7z文件

    7zip(下面简称7z)是由Igor Pavlov所开发的一种压缩格式,主要使用的压缩算法是LZMA/LZMA2.7z是一种压缩比非常高的格式,这与其压缩算法LZMA有直接关系,所以很多大文件都是用7 ...

  2. java 压缩解压密码zip_Java解压和压缩带密码的zip文件过程详解|chu

    前言 JDK自带的ZIP操作接口(java.util.zip包,请参看文章末尾的博客链接)并不支持密码,甚至也不支持中文文件名. 为了解决ZIP压缩文件的密码问题,在网上搜索良久,终于找到了winzi ...

  3. C语言编写压缩解压字符串程序

    一.压缩函数编写 当输入字符串时,读取第一个字符,然后往后面数相同的字符,并记录相同字符个数,直到出现一个不同的字符为止,并记录该字符以及个数:然后记录读取紧接下来不同与第一个的字符,并以此记录后面连 ...

  4. java压缩解压文件工具类

    controller中使用 @PostMapping(value = "/importZip")public Result<?> importExcel(HttpSer ...

  5. java 压缩/解压【tar.gz】

    环境 操作系统:win7 java:jdk7 第三方包:commons-compress-1.14.jar 需求 不管是文件夹还是常规文件,实现基本的打包压缩. 思路: ①先把需要压缩的文件,打包成. ...

  6. 按键精灵curl、FTP、zip、sha1算法、下载文件、上传文件、蓝奏云api、压缩解压文件支持 安卓、IOS

    lua插件放到 按键精灵手机助手 安装位置的 Plugin 文件夹里面  注意: 下载后去掉文件后缀.7z 支持安卓,ios ,不需要安装,一个lua插件搞定. 支持multipart/form-da ...

  7. java代码实现解压文件_Java压缩/解压文件的实现代码

    用java压缩/解压文件: import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; impo ...

  8. python压缩文件tar_python 实现tar文件压缩解压的实例详解

    python 实现tar文件压缩解压的实例详解 python 实现tar文件压缩解压的实例详解 压缩文件: import tarfile import os def tar(fname): t = t ...

  9. python zlib_【python】使用zlib进行压缩解压

    A:如何使用zlib模块来进行压缩解压了? Q: 1.使用zlib.compress可以压缩字符串.使用zlib.decompress可以解压字符串. 压缩解压字符串示范代码:import zlibm ...

最新文章

  1. 经典JavaScript正则表达式实战
  2. JEECG 3.7跨时代重构精华版发布,企业级JAVA快速开发平台
  3. 【供参考】2021 中国一流大学名单(30 所)和中国大学综合实力 700 强出炉!
  4. DataInputStream
  5. Ipad 日程管理APP使用心得
  6. 迷你5和迷你4区别_可变大小的视频迷你批处理
  7. 工业交换机:如果出现了物理性故障该怎么判断?
  8. java okhttp3 工具类,Retrofit+okhttp+Rxjava网络请求工具类
  9. java判断一个数值是否在数学区间范围内
  10. 一个人越来越沉默,即便是对着家人也无话可说,这究竟是怎么了?
  11. RabbitMQ (一)第一个hello world
  12. MSSQL 同步两个数据库的示例
  13. 联想昭阳E46G笔记本识别4G内存问题
  14. 0CTF/TCTF2019 Ghost Pepper Writeup
  15. [一场梦转无踪 为什么美梦有始无终]香格里拉夏宫自助茶点
  16. 斯坦福2021年度AI报告:从研发、技术、经济等多维度解读AI发展
  17. 红米4鸿蒙系统刷机包,小米 红米4 高配版获取Root权限服务含精简系统方案
  18. 记忆尤深的博贺港海鲜
  19. Unity3d 中创建实时视频聊天
  20. 微信小程序云开发-证件照的实现

热门文章

  1. 计算机网络专科升本科,目前专科升本科有哪几种途径?
  2. oracle同步恢复目录,Oracle创建恢复目录(catalog)
  3. mysql 中间表的好处_Mysql中使用中间表提高统计查询速度
  4. python素描效果_python实现图片素描效果
  5. 云服务器文件打包,云服务器文件打包
  6. 在嵌套使用if语句时,C语言规定else总是什么?
  7. 众辰nz200变频器使用说明书_ABB变频器
  8. C++中 Vector使用方法
  9. pat 乙级 1027 打印沙漏(C++)
  10. 【渝粤教育】国家开放大学2018年春季 8625-22T老年心理健康 参考试题