java压缩解压缩类实例[转]
package com.yangxiaozuo.util;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.Deflater;
import java.util.zip.Inflater;
/**
* ZLib压缩工具
*
* @author 梁栋
* @version 1.0
* @since 1.0
*/
public abstract class ZLibUtils {
/**
* 压缩
*
* @param data
* 待压缩数据
* @return byte[] 压缩后的数据
*/
public static byte[] compress(byte[] data) {
byte[] output = new byte[0];
Deflater compresser = new Deflater();
compresser.reset();
compresser.setInput(data);
compresser.finish();
ByteArrayOutputStream bos = new ByteArrayOutputStream(data.length);
try {
byte[] buf = new byte[1024];
while (!compresser.finished()) {
int i = compresser.deflate(buf);
bos.write(buf, 0, i);
}
output = bos.toByteArray();
} catch (Exception e) {
output = data;
e.printStackTrace();
} finally {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
compresser.end();
return output;
}
/**
* 解压缩
*
* @param data
* 待压缩的数据
* @return byte[] 解压缩后的数据
*/
public static byte[] decompress(byte[] data) {
byte[] output = new byte[0];
Inflater decompresser = new Inflater();
decompresser.reset();
decompresser.setInput(data);
ByteArrayOutputStream o = new ByteArrayOutputStream(data.length);
try {
byte[] buf = new byte[1024];
while (!decompresser.finished()) {
int i = decompresser.inflate(buf);
o.write(buf, 0, i);
}
output = o.toByteArray();
} catch (Exception e) {
output = data;
e.printStackTrace();
} finally {
try {
o.close();
} catch (IOException e) {
e.printStackTrace();
}
}
decompresser.end();
return output;
}
public static void main(String[] args){
String inputStr = "snowolf@zlex.org;dongliang@zlex.org;zlex.dongliang@zl";
System.err.println("输入字符串:\t" + inputStr);
byte[] input = inputStr.getBytes();
System.err.println("输入字节长度:\t" + input.length);
byte[] data = ZLibUtils.compress(input);
System.err.println("压缩后字节长度:\t" + data.length);
byte[] output = ZLibUtils.decompress(data);
System.err.println("解压缩后字节长度:\t" + output.length);
String outputStr = new String(output);
System.err.println("输出字符串:\t" + outputStr);
}
}
转载于:https://www.cnblogs.com/coolattt/archive/2010/01/06/1640614.html
java压缩解压缩类实例[转]相关推荐
- java 代码压缩javascript_通过Java压缩JavaScript代码实例分享
通过移除空行和注释来压缩 javascript 代码 /** * this file is part of the echo web application framework (hereinafte ...
- java压缩解压缩_利用Java实现压缩与解压缩(zip、gzip)支持中文路径
zip扮演着归档和压缩两个角色:gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩. Java I/O类库还 ...
- java压缩/解压缩zip格式文件
因为项目要用到压缩.解压缩zip格式压缩包,只好自己封装一个,对于网上流行的中文乱码的问题,本文的解决方法是用apache的包代替jdk里的.基本上还是比较好用的. 废话少说,直接上代码. 1 pac ...
- Java压缩/解压缩二进制文件
在Java中提供Deflater和Inflater工具类来压缩/解压缩数据. 这两个工具类采用zlib算法,下面给出一个封装好的工具. Java代码 /** * util for compress/d ...
- Java 压缩解压缩 第三方组件,推荐一个强大的Java开发工具类库!
feilong开发更简便的工具库 Reduce development, Release ideas (灵感从重复简单的代码中释放出来) 让你从大量重复的底层代码中脱身,提高工作效率; 让你的代码更简 ...
- java压缩解压缩完整例子(仅支持lzh格式)
把下面文件放入同一目录下,运行使用 Run As Java Application 即可 //文件DirectoryZip.java, 压缩文件例子 import java.io.File; im ...
- php压缩解压缩插件,PHP压缩解压缩类:PclZip
PclZip是一个强大的压缩与解压缩zip文件的PHP类,PclZip library不仅能够压缩与解压缩Zip格式的文件:还能出压缩档的内容.同时也可以对现有的ZIP包进行添加或删除文件.<? ...
- java压缩解压缩rar、zip文件
来源https://www.open-open.com/lib/view/open1363592512046.html 被zip 折腾的要死,特意记录一下来,以后防翻车 package cn.com. ...
- JAVA加密工具类实例
工具类还是老套路,要让用户可扩展,同时提供一个基础工具即可,本文分享BeginCode的用户密码加密工具类的使用, 如果不为了扩展性,可以写成工具类即可,提供两个静态方法如下 一个方法是直接MD5加密 ...
最新文章
- 转:Tkinter教程之Text(2)篇
- 安装配置sendmail服务器
- 从mongodb中查询数据
- 学Java编程选择Java面授教学最有效
- 除了工商银行,目前中国还有那些宇宙级别的企业?
- python assert的作用
- kafka配置文件server.properties
- eclipse 输入卡顿_解决eclipse卡顿
- [Swift]LeetCode288. 唯一单词缩写 $ Unique Word Abbreviation
- 【Redis系列】Redis常用数据类型命令大全,6K字爆肝整理,路过不容错过
- Delphi7·ProgressBar控件
- 思科、华为等四大厂商网络工程师面试题汇总+解析(第1期)
- LeetCode 739. 每日温度(java实现)
- 六一儿童节,程序员写给女儿的一封信
- AAAI最佳论文Informer 解读
- python读取游戏数据_用Python抓取并分析了1982场英雄联盟数据,教你开局前预测游戏对局胜负!...
- 利用python实现计算不同长度蛋白质RMSD
- CF765F Souvenirs(暴力、线段树)
- 线性模型出现非正定矩阵的问题解释
- 华为的研发基地“欧洲小镇”
热门文章
- 2022-2028年中国数字化档案加工行业市场深度分析及发展策略分析报告
- 2022-2028年中国汽车橡胶件行业市场调查研究及前瞻分析报告
- tornado压力测试
- 解决:UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position错误
- pytorch学习笔记(九):PyTorch结构介绍
- Python第三方包的egg info 是什么东西
- OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)?
- NVIDIA FFmpeg 转码技术分析
- CVPR2019:无人驾驶3D目标检测论文点评
- ZooKeeper简介和概念知识