文章迁移:具体内容点击这里

送上小小经验:

1、被压缩的字符长度不足会导致压缩后比压缩前的数据更大:例如 压缩前字节长度为:10,压缩后字节长度为:48

2、字符编码问题:将byte[] 数组 转String,再将String 转回 byte[] 前后 byte 不一致问题。

// 示例1:异常
byte[] bytes1 = {31, -117, 8, 0};
String byStr = new String(bytes1);
byte[] bytes2 = byStr.getBytes();
System.out.println(Arrays.toString(bytes2));
// 输出 byte2 结果为: [31, -17, -65, -67, 8, 0]// 示例2:正常
byte[] bytes1 = {31, -117, 8, 0};
String byStr = new String(bytes1,"iso-8859-1");
byte[] bytes2 = byStr.getBytes("iso-8859-1");
System.out.println(Arrays.toString(bytes2));
// 输出 byte2 结果为: [31, -117, 8, 0]

问题分析:

  • 由于 UTF-8/GBK 是多字节编码,需要用多个字节来表示一个字符的编码,所以也就出现了在转换之后byte[]数组长度、内容不一致的情况。
  • 而ISO-8859-1编码是单字节编码,所以使用该编码就不会出现上面的问题

贴上就用:工具类附上

.。。。。。。

文章迁移:具体内容点击这里

java 实现数据压缩与解压相关推荐

  1. java文件压缩与解压_Java实现文件压缩与解压

    Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例.(转载自http://www.puiedu. ...

  2. Java实现Zip文件解压

    2019独角兽企业重金招聘Python工程师标准>>> ##1. 两种java实现zip文件解压方式 使用JDK的原生类java.util.zip,上代码: import java. ...

  3. ActiveMQ的安装和启动 安装JAVA配置JAVA环境 下载ActiveMQ 解压压缩包 tar zxvf activemq-x.x.x-bin.tar.gz 至此,linux下Activ

    ActiveMQ的安装和启动 安装JAVA配置JAVA环境 下载ActiveMQ 解压压缩包  tar zxvf activemq-x.x.x-bin.tar.gz 至此,linux下ActiveMQ ...

  4. java gz压缩文件解压

    java gz压缩文件解压 gzFileName压缩文件全路径 targetFileName解压后的文件全路径 public boolean unGzFile(String gzFileName,St ...

  5. java http 压缩_解压HTTP API的GZIP压缩数据

    1.对Java后端的请求HttpURLConnection对象中的消息头设置压缩 connection.setRequestProperty("Accept-Encoding", ...

  6. Java实现Zip压缩包解压

    对zip压缩包的解压是比较常见的应用场景,java代码的实现也很简单.废话不多说,直接上代码吧 一.代码  /** * zip解压 * @param srcFile        zip源文件 * @ ...

  7. java实现deflate文件格式解压压缩

    什么是deflate? DEFLATE是同时使用了LZ77算法与哈夫曼编码(Huffman Coding)的一个无损数据压缩算法. 它最初是由Phil Katz为他的PKZIP归档工具第二版所定义的, ...

  8. web上传zip大文件,java服务接收并解压ZIP文件

    目录 一.背景 二.知识点 三.代码实现 1.依赖 2.web 代码 3. java服务端 一.背景 公司产品小伙伴画了原型后,需要上传到服务器上供开发查看:由于文件数量很多,100M左右差不多要传3 ...

  9. java.util.zip.ZipFile解压后被java占用问题。

    在使用jdk自带zip解压工具解压文件时,调用ZipFile的getInputStream(ZipEntry entry)方法获取实体输入流后,正常关闭getInputStram返回的输入流.zip文 ...

最新文章

  1. Java知识点总结(JavaIO-合并流类)
  2. django oracle数据库配置,django连接oracle时setting 配置方法
  3. 【C 语言】文件操作 ( 配置文件读写 | 完整代码示例 ) ★
  4. 如何使用窗体开发-理解那些函数怎么来的?
  5. elasticsearch virtual memory虚拟内存配置“max virtual memory areas vm.max_map_count [65530] is too low, inc
  6. 线性表的各种基本操作
  7. beetl 时间输出格式化
  8. html5 css 三角形,css怎么画三角形?
  9. 第24周维生素市场最新动态
  10. elm预测matlab,机器学习——极限学习(ELM)matlab代码分析
  11. ubuntux学习日记
  12. C语言---数字迷宫
  13. 嵌入式Linux项目开发的几个步骤
  14. 新浪微博爬取笔记(4):数据清理
  15. Java中的双重检查(Double-Check)详解
  16. python公众号文章阅读量_怎么判断一篇微信公众号文章阅读量是不是刷上来的?...
  17. 使用国内镜像源来加速python pypi包的安装
  18. 论文详解EnlightenGAN: Deep Light Enhancement Without Paired Supervision
  19. 使用Arduino开发ESP32(06):Ethernet的使用(基于LAN8720)
  20. 学习笔记:光电耦合器PC817

热门文章

  1. 下一代数据库发展的趋势
  2. 计算机网络五层协议的体系结构
  3. IOU 破解方法 与 hexedit使用
  4. Java运行机制及运行组件
  5. 二维码框架Zxing的使用及自定义
  6. Aspen_安装_详细教程
  7. 无法启动此程序因为计算机中丢失d,怎么办?无法启动此程序因为计算机中丢失ms – 手机爱问...
  8. 阿里某员工吐槽:工作九年因为换岗被坑,主动离职还是坐等被裁?
  9. 分布式调度任务管理—Dkron
  10. 2021年高考湛江成绩查询,湛江学子注意!今日起可查询,2021年1月学考成绩公布...