想用java做个压缩和解压缩的小程序,不知道如何实现。

用来打包文件,但不知道具体的实现方法,请高手指教!是手机小程序... 用来打包文件,但不知道具体的实现方法,请高手指教!
是手机小程序
展开
 我来答
jiajun6460
2011-10-09
知道答主
回答量:66
采纳率:100%
帮助的人:28.8万
展开全部
root :释放文件路径 zipfile:待解压文件的路径 file:待解压文件的文件名
public void unzip(File root, File zipfile, String file) throws Exception {

// 解压文件不存在时返回
if (!zipfile.exists()) {
return;
}
// 释放目录不存时创建
if (!root.exists()) {
root.mkdirs();
}
// 释放目录不为目录时返回
if (!root.isDirectory()) {
return;
}

FileInputStream fin = new FileInputStream(zipfile);
ZipInputStream zin = new ZipInputStream(fin);
ZipEntry entry = null;

while ((entry = zin.getNextEntry()) != null) {
if (!entry.getName().endsWith(file)) {
continue;
}
File tmp = new File(root, entry.getName());
if (entry.isDirectory()) {
tmp.mkdirs();
} else {
byte[] buff = new byte[4096];
int len = 0;
tmp.getParentFile().mkdirs();
FileOutputStream fout = new FileOutputStream(tmp);
while ((len = zin.read(buff)) != -1) {
fout.write(buff, 0, len);
}
zin.closeEntry();
fout.close();
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
霧鎖樓臺
2011-10-09 · TA获得超过226个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:106万
展开全部
无损数据压缩是一件奇妙的事情,想一想,一串任意的数据能够根据一定的规则转换成只有原来 1/2 - 1/5 长度的数据,并且能够按照相应的规则还原到原来的样子,听起来真是很酷。
可是哥们,你难道想自己写压缩算法吗?
之所以可以无损压缩,是因为有两种形式的重复存在于计算机数据中,zip 就是对这两种重复进行了压缩。
想自己写的话,就去研究下压缩原理吧。如果不是,就用别人的包好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仁厚还老实的鱼丸1035
2011-10-09
知道答主
回答量:13
采纳率:0%
帮助的人:7.6万
展开全部
看一下java.util.zip下的类吧,
ZipFile
ZipInputStream
ZipOutputStream
以上3个类足够解决你的问题,这些类是jdk自带的哦

查了下android SDK,也有这些类
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式