- 浏览: 4378995 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (163)
- 职场 && 心情 (22)
- Java/Basic (17)
- Java/Compression (7)
- Java/Security (20)
- Java/Maven (3)
- Java/Cache (11)
- Eclipse (4)
- Spring (19)
- ORM/Hibernate (2)
- ORM/iBatis (3)
- DB/NoSQL (11)
- DB/MySQL (7)
- DB/MS SQL Server (4)
- OS/Linux (11)
- OS/Mac (7)
- C/C++ (4)
- Server Architecture/Basic (13)
- Server Architecture/Distributed (17)
- Moblie/Andriod (2)
- WebService (3)
- Objective-C (1)
- Html (1)
- 设计模式 (1)
- Scala (0)
- Kafka (1)
最新评论
-
w47_csdn:
证书安装:在"浏览"选项中选择" ...
Java加密技术(九)——初探SSL -
w47_csdn:
spiritfrog 写道你好,我按照你的步骤,tomcat中 ...
Java加密技术(九)——初探SSL -
liuyachao111:
11楼说的对 用@ControllerAdvicepublic ...
Spring 注解学习手札(八)补遗——@ExceptionHandler -
irayslu:
作者你好, 我把你的源码放在jdk6, jdk7 中运行正常, ...
Java加密技术(五)——非对称加密算法的由来DH -
夏季浅忆-卖小子:
为什么不能解压rar格式的压缩包呢
Java压缩技术(三) ZIP解压缩——Java原生实现
趁着头脑清楚,抓紧时间继续整理!
熟悉linux的朋友可能都用过文件压缩命令,譬如最为简单的gzip命令。
相关链接:
Java压缩技术(一) ZLib
Java压缩技术(二) ZIP压缩——Java原生实现
Java压缩技术(三) ZIP解压缩——Java原生实现
Java压缩技术(四) GZIP——Java原生实现
Java压缩技术(五) GZIP相关——浏览器解析
Java压缩技术(六) BZIP2——Commons实现
Java压缩技术(七) TAR——Commons实现
GZIP常常用在linxu环境下,是一种非常简单的压缩算法。在Java实现API中,它仅仅包含两个实现类:GZIPInputStream和GZIPOutputStream。
GZIPOutputStream类用于压缩
GZIPInputStream类用于解压缩
先说压缩实现,GZIPOutputStream只有一个方法用于压缩,就是带定长的write方法。简单调用如下文所示:
记得完成操作后,调用finish方法和flush方法!
核心的压缩实现就这么多!
对于解压缩,GZIPInputStream也对应GZIPOutputStream提供了一个带定长的read方法。简单调用如下文所示:
就这么简单! 核心内容完毕!
顺便补充一下,在liunx下操作gzip命令
gzip file用于压缩,如gzip a.txt将得到文件a.txt.gz,同时删除文件a.txt!。
gzip -d file.gz用于解压缩,如gzip -d a.txt.gz将得到文件a.txt,同时删除文件a.txt.gz!。
根据这些特性,我补充了相应的文件操作实现,详见下文!
完整实现:
罗嗦了半天,到底行不行?
来个测试用例,测试用例如下所示:
结果如何?
先看testDataCompress()方法控制台输出结果。
控制台输出如下:
原文: zlex@zlex.org,snowolf@zlex.org,zlex.snowolf@zlex.org
长度: 52
压缩后:
长度: 45
解压缩后: zlex@zlex.org,snowolf@zlex.org,zlex.snowolf@zlex.org
长度: 52
这里使用英文字符做测试,当输入字符串的字节数大于50左右时,压缩效果明显;如果这里使用中文压缩,可能当压缩上千字节时方能体现出压缩效果!
对于文件操作,朋友们可以自行实验,我代码里的实现是按照gzip命令来的!
举例来说:
压缩时,将文件a.txt压缩为a.txt.gz,同时删除文件a.txt。
解压缩时,将文件a.txt.gz解压缩为a.txt,同时删除文件a.txt.gz。
注意执行testFileCompress方法,查看产生的文件! 你大可以放到linux上去做验证!
commons也提供了GZIP算法的实现,甚至更多种压缩算法(tar、bzip2等)的实现,有机会我将继续整理!
相关链接:
Java压缩技术(一) ZLib
Java压缩技术(二) ZIP压缩——Java原生实现
Java压缩技术(三) ZIP解压缩——Java原生实现
Java压缩技术(四) GZIP——Java原生实现
Java压缩技术(五) GZIP相关——浏览器解析
Java压缩技术(六) BZIP2——Commons实现
Java压缩技术(七) TAR——Commons实现
JNI实现,效率也难说!我只是整体整理,对各个算法尚无深度研究!
首先说压力,如果文件/数据超级大,那么不管是压缩,还是解压缩都是很大的。一般情况的操作不至于造成多大的压力。至于这一点,鱼与熊掌不可兼得,只要把握好一个量度即可!
再说IE,IE的确有这个问题,广泛的来说兼容性成问题。抽空我试试看,看看是不是在其他浏览器中也如此!
谢谢 :)
稍后,我补充一个使用gzip构建的网络流,IE的确是不支持的! FireFox、Opera都能够很好的支持!
兄弟,看这里http://snowolf.iteye.com/blog/643443!
首先说压力,如果文件/数据超级大,那么不管是压缩,还是解压缩都是很大的。一般情况的操作不至于造成多大的压力。至于这一点,鱼与熊掌不可兼得,只要把握好一个量度即可!
再说IE,IE的确有这个问题,广泛的来说兼容性成问题。抽空我试试看,看看是不是在其他浏览器中也如此!
谢谢 :)
稍后,我补充一个使用gzip构建的网络流,IE的确是不支持的! FireFox、Opera都能够很好的支持!
首先说压力,如果文件/数据超级大,那么不管是压缩,还是解压缩都是很大的。一般情况的操作不至于造成多大的压力。至于这一点,鱼与熊掌不可兼得,只要把握好一个量度即可!
再说IE,IE的确有这个问题,广泛的来说兼容性成问题。抽空我试试看,看看是不是在其他浏览器中也如此!
谢谢 :)
首先说压力,如果文件/数据超级大,那么不管是压缩,还是解压缩都是很大的。一般情况的操作不至于造成多大的压力。至于这一点,鱼与熊掌不可兼得,只要把握好一个量度即可!
再说IE,IE的确有这个问题,广泛的来说兼容性成问题。抽空我试试看,看看是不是在其他浏览器中也如此!
熟悉linux的朋友可能都用过文件压缩命令,譬如最为简单的gzip命令。
相关链接:
Java压缩技术(一) ZLib
Java压缩技术(二) ZIP压缩——Java原生实现
Java压缩技术(三) ZIP解压缩——Java原生实现
Java压缩技术(四) GZIP——Java原生实现
Java压缩技术(五) GZIP相关——浏览器解析
Java压缩技术(六) BZIP2——Commons实现
Java压缩技术(七) TAR——Commons实现
GZIP常常用在linxu环境下,是一种非常简单的压缩算法。在Java实现API中,它仅仅包含两个实现类:GZIPInputStream和GZIPOutputStream。
GZIPOutputStream类用于压缩
GZIPInputStream类用于解压缩
先说压缩实现,GZIPOutputStream只有一个方法用于压缩,就是带定长的write方法。简单调用如下文所示:
/** * 数据压缩 * * @param is * @param os * @throws Exception */ public static void compress(InputStream is, OutputStream os) throws Exception { GZIPOutputStream gos = new GZIPOutputStream(os); int count; byte data[] = new byte[BUFFER]; while ((count = is.read(data, 0, BUFFER)) != -1) { gos.write(data, 0, count); } gos.finish(); gos.flush(); gos.close(); }
记得完成操作后,调用finish方法和flush方法!
核心的压缩实现就这么多!
对于解压缩,GZIPInputStream也对应GZIPOutputStream提供了一个带定长的read方法。简单调用如下文所示:
/** * 数据解压缩 * * @param is * @param os * @throws Exception */ public static void decompress(InputStream is, OutputStream os) throws Exception { GZIPInputStream gis = new GZIPInputStream(is); int count; byte data[] = new byte[BUFFER]; while ((count = gis.read(data, 0, BUFFER)) != -1) { os.write(data, 0, count); } gis.close(); }
就这么简单! 核心内容完毕!
顺便补充一下,在liunx下操作gzip命令
gzip file用于压缩,如gzip a.txt将得到文件a.txt.gz,同时删除文件a.txt!。
gzip -d file.gz用于解压缩,如gzip -d a.txt.gz将得到文件a.txt,同时删除文件a.txt.gz!。
根据这些特性,我补充了相应的文件操作实现,详见下文!
完整实现:
/** * 2010-4-13 */ package org.zlex.commons.io; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; /** * GZIP工具 * * @author <a href="mailto:zlex.dongliang@gmail.com">梁栋</a> * @since 1.0 */ public abstract class GZipUtils { public static final int BUFFER = 1024; public static final String EXT = ".gz"; /** * 数据压缩 * * @param data * @return * @throws Exception */ public static byte[] compress(byte[] data) throws Exception { ByteArrayInputStream bais = new ByteArrayInputStream(data); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 压缩 compress(bais, baos); byte[] output = baos.toByteArray(); baos.flush(); baos.close(); bais.close(); return output; } /** * 文件压缩 * * @param file * @throws Exception */ public static void compress(File file) throws Exception { compress(file, true); } /** * 文件压缩 * * @param file * @param delete * 是否删除原始文件 * @throws Exception */ public static void compress(File file, boolean delete) throws Exception { FileInputStream fis = new FileInputStream(file); FileOutputStream fos = new FileOutputStream(file.getPath() + EXT); compress(fis, fos); fis.close(); fos.flush(); fos.close(); if (delete) { file.delete(); } } /** * 数据压缩 * * @param is * @param os * @throws Exception */ public static void compress(InputStream is, OutputStream os) throws Exception { GZIPOutputStream gos = new GZIPOutputStream(os); int count; byte data[] = new byte[BUFFER]; while ((count = is.read(data, 0, BUFFER)) != -1) { gos.write(data, 0, count); } gos.finish(); gos.flush(); gos.close(); } /** * 文件压缩 * * @param path * @throws Exception */ public static void compress(String path) throws Exception { compress(path, true); } /** * 文件压缩 * * @param path * @param delete * 是否删除原始文件 * @throws Exception */ public static void compress(String path, boolean delete) throws Exception { File file = new File(path); compress(file, delete); } /** * 数据解压缩 * * @param data * @return * @throws Exception */ public static byte[] decompress(byte[] data) throws Exception { ByteArrayInputStream bais = new ByteArrayInputStream(data); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 解压缩 decompress(bais, baos); data = baos.toByteArray(); baos.flush(); baos.close(); bais.close(); return data; } /** * 文件解压缩 * * @param file * @throws Exception */ public static void decompress(File file) throws Exception { decompress(file, true); } /** * 文件解压缩 * * @param file * @param delete * 是否删除原始文件 * @throws Exception */ public static void decompress(File file, boolean delete) throws Exception { FileInputStream fis = new FileInputStream(file); FileOutputStream fos = new FileOutputStream(file.getPath().replace(EXT, "")); decompress(fis, fos); fis.close(); fos.flush(); fos.close(); if (delete) { file.delete(); } } /** * 数据解压缩 * * @param is * @param os * @throws Exception */ public static void decompress(InputStream is, OutputStream os) throws Exception { GZIPInputStream gis = new GZIPInputStream(is); int count; byte data[] = new byte[BUFFER]; while ((count = gis.read(data, 0, BUFFER)) != -1) { os.write(data, 0, count); } gis.close(); } /** * 文件解压缩 * * @param path * @throws Exception */ public static void decompress(String path) throws Exception { decompress(path, true); } /** * 文件解压缩 * * @param path * @param delete * 是否删除原始文件 * @throws Exception */ public static void decompress(String path, boolean delete) throws Exception { File file = new File(path); decompress(file, delete); } }
罗嗦了半天,到底行不行?
来个测试用例,测试用例如下所示:
/** * 2010-4-13 */ package org.zlex.commons.compress.compress; import static org.junit.Assert.assertEquals; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import org.junit.Test; /** * @author <a href="mailto:zlex.dongliang@gmail.com">梁栋</a> * @since 1.0 */ public class GZipUtilsTest { private String inputStr = "zlex@zlex.org,snowolf@zlex.org,zlex.snowolf@zlex.org"; @Test public final void testDataCompress() throws Exception { System.err.println("原文:\t" + inputStr); byte[] input = inputStr.getBytes(); System.err.println("长度:\t" + input.length); byte[] data = GZipUtils.compress(input); System.err.println("压缩后:\t"); System.err.println("长度:\t" + data.length); byte[] output = GZipUtils.decompress(data); String outputStr = new String(output); System.err.println("解压缩后:\t" + outputStr); System.err.println("长度:\t" + output.length); assertEquals(inputStr, outputStr); } @Test public final void testFileCompress() throws Exception { FileOutputStream fos = new FileOutputStream("d:/f.txt"); fos.write(inputStr.getBytes()); fos.flush(); fos.close(); GZipUtils.compress("d:/f.txt", false); GZipUtils.decompress("d:/f.txt.gz", false); File file = new File("d:/f.txt"); FileInputStream fis = new FileInputStream(file); DataInputStream dis = new DataInputStream(fis); byte[] data = new byte[(int) file.length()]; dis.readFully(data); fis.close(); String outputStr = new String(data); assertEquals(inputStr, outputStr); } }
结果如何?
先看testDataCompress()方法控制台输出结果。
控制台输出如下:
引用
原文: zlex@zlex.org,snowolf@zlex.org,zlex.snowolf@zlex.org
长度: 52
压缩后:
长度: 45
解压缩后: zlex@zlex.org,snowolf@zlex.org,zlex.snowolf@zlex.org
长度: 52
这里使用英文字符做测试,当输入字符串的字节数大于50左右时,压缩效果明显;如果这里使用中文压缩,可能当压缩上千字节时方能体现出压缩效果!
对于文件操作,朋友们可以自行实验,我代码里的实现是按照gzip命令来的!
举例来说:
压缩时,将文件a.txt压缩为a.txt.gz,同时删除文件a.txt。
解压缩时,将文件a.txt.gz解压缩为a.txt,同时删除文件a.txt.gz。
注意执行testFileCompress方法,查看产生的文件! 你大可以放到linux上去做验证!
commons也提供了GZIP算法的实现,甚至更多种压缩算法(tar、bzip2等)的实现,有机会我将继续整理!
相关链接:
Java压缩技术(一) ZLib
Java压缩技术(二) ZIP压缩——Java原生实现
Java压缩技术(三) ZIP解压缩——Java原生实现
Java压缩技术(四) GZIP——Java原生实现
Java压缩技术(五) GZIP相关——浏览器解析
Java压缩技术(六) BZIP2——Commons实现
Java压缩技术(七) TAR——Commons实现
- gzip.rar (1.5 KB)
- 下载次数: 523
评论
11 楼
Horse_Chasing
2016-12-28
垃圾代码垃圾代码
10 楼
ustcstj
2014-07-09
博主你好,我将你的代码稍微修改后放到安卓平台上运行,针对下面这个语句出现一个问题
byte[] data = GZipUtils.compress(input);
System.err.println("压缩后:\t");
System.err.println("长度:\t" + data.length);
我将println换成了log.i("tag1","String.valueof(data.length)");
在data.length这里出错,eclipse说data没有length变量,希望博主解惑
byte[] data = GZipUtils.compress(input);
System.err.println("压缩后:\t");
System.err.println("长度:\t" + data.length);
我将println换成了log.i("tag1","String.valueof(data.length)");
在data.length这里出错,eclipse说data没有length变量,希望博主解惑
9 楼
Alicus520
2010-11-05
谢谢了!!
8 楼
snowolf
2010-09-26
forchenyun 写道
hi,我目前需要极高效的压缩,对Java自己的gzip实现不是很放心。
gzip据说有c写的代码,Java本地调用,不知道博主有研究吗?
gzip据说有c写的代码,Java本地调用,不知道博主有研究吗?
JNI实现,效率也难说!我只是整体整理,对各个算法尚无深度研究!
7 楼
forchenyun
2010-09-26
hi,我目前需要极高效的压缩,对Java自己的gzip实现不是很放心。
gzip据说有c写的代码,Java本地调用,不知道博主有研究吗?
gzip据说有c写的代码,Java本地调用,不知道博主有研究吗?
6 楼
snowolf
2010-04-14
snowolf 写道
iamzealotwang 写道
snowolf 写道
iamzealotwang 写道
你好 我有一个问题想请教一下
我是一名前端工程师,有关GZip这种东西不是很懂,不过我有一个需求
前端需要从后端load一份xml文件 之前的做法都是我自己用zip压缩xml文件然后再从后端load过来解压。不过后端的同事和我说 不用那么麻烦,说xml在http传输的时候直接被gzip压缩了。
我想问一下 这样做对后端的压力大么? 还有就是听说这种方式对ie6 ie7的支持不好 有这回事么? 谢谢。
我是一名前端工程师,有关GZip这种东西不是很懂,不过我有一个需求
前端需要从后端load一份xml文件 之前的做法都是我自己用zip压缩xml文件然后再从后端load过来解压。不过后端的同事和我说 不用那么麻烦,说xml在http传输的时候直接被gzip压缩了。
我想问一下 这样做对后端的压力大么? 还有就是听说这种方式对ie6 ie7的支持不好 有这回事么? 谢谢。
首先说压力,如果文件/数据超级大,那么不管是压缩,还是解压缩都是很大的。一般情况的操作不至于造成多大的压力。至于这一点,鱼与熊掌不可兼得,只要把握好一个量度即可!
再说IE,IE的确有这个问题,广泛的来说兼容性成问题。抽空我试试看,看看是不是在其他浏览器中也如此!
谢谢 :)
稍后,我补充一个使用gzip构建的网络流,IE的确是不支持的! FireFox、Opera都能够很好的支持!
兄弟,看这里http://snowolf.iteye.com/blog/643443!
5 楼
snowolf
2010-04-14
iamzealotwang 写道
snowolf 写道
iamzealotwang 写道
你好 我有一个问题想请教一下
我是一名前端工程师,有关GZip这种东西不是很懂,不过我有一个需求
前端需要从后端load一份xml文件 之前的做法都是我自己用zip压缩xml文件然后再从后端load过来解压。不过后端的同事和我说 不用那么麻烦,说xml在http传输的时候直接被gzip压缩了。
我想问一下 这样做对后端的压力大么? 还有就是听说这种方式对ie6 ie7的支持不好 有这回事么? 谢谢。
我是一名前端工程师,有关GZip这种东西不是很懂,不过我有一个需求
前端需要从后端load一份xml文件 之前的做法都是我自己用zip压缩xml文件然后再从后端load过来解压。不过后端的同事和我说 不用那么麻烦,说xml在http传输的时候直接被gzip压缩了。
我想问一下 这样做对后端的压力大么? 还有就是听说这种方式对ie6 ie7的支持不好 有这回事么? 谢谢。
首先说压力,如果文件/数据超级大,那么不管是压缩,还是解压缩都是很大的。一般情况的操作不至于造成多大的压力。至于这一点,鱼与熊掌不可兼得,只要把握好一个量度即可!
再说IE,IE的确有这个问题,广泛的来说兼容性成问题。抽空我试试看,看看是不是在其他浏览器中也如此!
谢谢 :)
稍后,我补充一个使用gzip构建的网络流,IE的确是不支持的! FireFox、Opera都能够很好的支持!
4 楼
iamzealotwang
2010-04-14
snowolf 写道
iamzealotwang 写道
你好 我有一个问题想请教一下
我是一名前端工程师,有关GZip这种东西不是很懂,不过我有一个需求
前端需要从后端load一份xml文件 之前的做法都是我自己用zip压缩xml文件然后再从后端load过来解压。不过后端的同事和我说 不用那么麻烦,说xml在http传输的时候直接被gzip压缩了。
我想问一下 这样做对后端的压力大么? 还有就是听说这种方式对ie6 ie7的支持不好 有这回事么? 谢谢。
我是一名前端工程师,有关GZip这种东西不是很懂,不过我有一个需求
前端需要从后端load一份xml文件 之前的做法都是我自己用zip压缩xml文件然后再从后端load过来解压。不过后端的同事和我说 不用那么麻烦,说xml在http传输的时候直接被gzip压缩了。
我想问一下 这样做对后端的压力大么? 还有就是听说这种方式对ie6 ie7的支持不好 有这回事么? 谢谢。
首先说压力,如果文件/数据超级大,那么不管是压缩,还是解压缩都是很大的。一般情况的操作不至于造成多大的压力。至于这一点,鱼与熊掌不可兼得,只要把握好一个量度即可!
再说IE,IE的确有这个问题,广泛的来说兼容性成问题。抽空我试试看,看看是不是在其他浏览器中也如此!
谢谢 :)
3 楼
qianhd
2010-04-14
除了不支持加密解密什么都好
2 楼
snowolf
2010-04-14
iamzealotwang 写道
你好 我有一个问题想请教一下
我是一名前端工程师,有关GZip这种东西不是很懂,不过我有一个需求
前端需要从后端load一份xml文件 之前的做法都是我自己用zip压缩xml文件然后再从后端load过来解压。不过后端的同事和我说 不用那么麻烦,说xml在http传输的时候直接被gzip压缩了。
我想问一下 这样做对后端的压力大么? 还有就是听说这种方式对ie6 ie7的支持不好 有这回事么? 谢谢。
我是一名前端工程师,有关GZip这种东西不是很懂,不过我有一个需求
前端需要从后端load一份xml文件 之前的做法都是我自己用zip压缩xml文件然后再从后端load过来解压。不过后端的同事和我说 不用那么麻烦,说xml在http传输的时候直接被gzip压缩了。
我想问一下 这样做对后端的压力大么? 还有就是听说这种方式对ie6 ie7的支持不好 有这回事么? 谢谢。
首先说压力,如果文件/数据超级大,那么不管是压缩,还是解压缩都是很大的。一般情况的操作不至于造成多大的压力。至于这一点,鱼与熊掌不可兼得,只要把握好一个量度即可!
再说IE,IE的确有这个问题,广泛的来说兼容性成问题。抽空我试试看,看看是不是在其他浏览器中也如此!
1 楼
iamzealotwang
2010-04-13
你好 我有一个问题想请教一下
我是一名前端工程师,有关GZip这种东西不是很懂,不过我有一个需求
前端需要从后端load一份xml文件 之前的做法都是我自己用zip压缩xml文件然后再从后端load过来解压。不过后端的同事和我说 不用那么麻烦,说xml在http传输的时候直接被gzip压缩了。
我想问一下 这样做对后端的压力大么? 还有就是听说这种方式对ie6 ie7的支持不好 有这回事么? 谢谢。
我是一名前端工程师,有关GZip这种东西不是很懂,不过我有一个需求
前端需要从后端load一份xml文件 之前的做法都是我自己用zip压缩xml文件然后再从后端load过来解压。不过后端的同事和我说 不用那么麻烦,说xml在http传输的时候直接被gzip压缩了。
我想问一下 这样做对后端的压力大么? 还有就是听说这种方式对ie6 ie7的支持不好 有这回事么? 谢谢。
发表评论
-
Java压缩技术(七) TAR——Commons实现
2010-04-20 18:04 36491在linux下,tar是一个归档命令。当然,如果配合gzip、 ... -
Java压缩技术(六) BZIP2——Commons实现
2010-04-15 14:47 22375想要把一整套算法都整理出来,的确是件非常老心费力的事情! 但是 ... -
Java压缩技术(五) GZIP相关——浏览器解析
2010-04-14 10:36 24639昨天一篇GZIP相关实现引起大家的广泛关注,为一位朋友验证一下 ... -
Java压缩技术(三) ZIP解压缩——Java原生实现
2010-04-13 10:20 34280JavaEye的朋友跟我说:“你一口气把ZIP压缩和解压缩都写 ... -
Java压缩技术(二) ZIP压缩——Java原生实现
2010-04-13 00:02 60898去年整理了一篇ZLib算法Java实现(Java压缩技术(一) ... -
Java压缩技术(一) ZLib
2009-09-09 13:09 62044应好友需要,整理一下Java的压缩算法,先从ZLib开始。 ...
相关推荐
ZLib ZIP 压缩——Java 原生实现 ZIP 解压缩——Java 原生实现 GZIP——Java 原生实现 GZIP 相关——浏览器解析 BZIP2——Commons 实现 TAR——Commons 实现
NULL 博文链接:https://snowolf.iteye.com/blog/643443
java实现gzip ajax请求gzip压缩 等
一个Java随书实例:用GZIP压缩解压文件,从源文件得到文件输入流,得到目标文件输出流,得到压缩输出流,设定读入缓冲区尺寸,弹出文件选择器,并判断是否点击了打开按钮,判断事件来自于哪个按钮,用于选择解压和...
Java用GZIP压缩解压文件源码
Java用GZIP压缩解压文件
基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩...
这个模块提供了一些简单的接口来对文件进行压缩和解压缩,类似于GNU项目中得gzip 数据的压缩源于zlib模块的支持。 在gzip模块中提供了GzipFile类,在该类中提供了像open( ), compress( ), 和depress( )等一些方便...
vc中用来解压缩Java中gzip压缩的数据
使用java语言可以很方便的实现gzip压缩和解压缩.以下是一个压缩和解压缩的最简程序.
ajax+pako.js实现gzip数据压缩上传,解决post数据过长问题 http://blog.csdn.net/jodenhe/article/details/70983781
java使用GZIP压缩传输
大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来....
Java用GZIP压缩解压文件.7z
解决java压缩中文乱码,java.util.zip中不支持中文,通过该代码进行修改即可支持中文,不用第三方插件
使用C语言编写的GZIP压缩及解压源代码
该案例通过zlib实现gzip的压缩解压功能,包括解压gzip字符串、图片两个案例;提供了zlib1211的源码包和对应编译后生成的文件; 相应说明参考笔者博客:Qt笔记8--zlib实现gzip解压,链接...
JAVA文件压缩与解压缩实践报告 主函数 gzip压缩模块代码 压缩模块要完成的就是将文件读入以后进行压缩,再将压缩后的数据写入一个新的文件,其部分代码如下: public class gzip { public static void main(String...