java怎么用Gzip实现文件的压缩和解压缩的? 15

这个并不是调用java中自带的Gzip文件流来实现,而是自己写出这个压缩过程,哪个大神能教教我啊,好的话,会给加分的... 这个并不是调用java中自带的Gzip文件流来实现,而是自己写出这个压缩过程,哪个大神能教教我啊,好的话,会给加分的 展开
 我来答
nizhihe
2015-07-15 · TA获得超过1637个赞
知道小有建树答主
回答量:542
采纳率:73%
帮助的人:144万
展开全部

代码:


结果:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chris_strive
2012-05-17 · TA获得超过350个赞
知道小有建树答主
回答量:658
采纳率:100%
帮助的人:407万
展开全部
网上搜,很多的。
追问
大哥,我要是搜索到了就不会在这用15分来晃悠了,真的。。。。
追答
字数有限制,不能发完整代码了,发关键代码吧,使用org.apache.tools.zip包

/**
* 解压文件
*
* @param zipFileName 压缩文件名
* @param outputDirectory 解压的位置
* @throws Exception
*/
public static void unZip(String zipFileName, String outputDirectory)
throws Exception {
try {
ZipFile zipFile = new ZipFile(zipFileName);
Enumeration e = zipFile.getEntries();
ZipEntry zipEntry = null;
createDirectory(outputDirectory, "");
while (e.hasMoreElements()) {
zipEntry = (org.apache.tools.zip.ZipEntry) e.nextElement();
if (zipEntry.isDirectory()) {
String name = zipEntry.getName();
name = name.substring(0, name.length() - 1);
File f = new File(outputDirectory + File.separator + name);
f.mkdir();
} else {
String fileName = zipEntry.getName();
fileName = fileName.replace('\\', '/');
if (fileName.indexOf("/") != -1) {
createDirectory(outputDirectory, fileName.substring(0,
fileName.lastIndexOf("/")));
fileName = fileName.substring(
fileName.lastIndexOf("/") + 1, fileName
.length());
}

File f = new File(outputDirectory + File.separator
+ zipEntry.getName());

f.createNewFile();
InputStream in = zipFile.getInputStream(zipEntry);
FileOutputStream out = new FileOutputStream(f);

byte[] by = new byte[1024];
int c;
while ((c = in.read(by)) != -1) {
out.write(by, 0, c);
}
out.close();
in.close();
}
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式