展开全部
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();
}
}
}
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();
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
无损数据压缩是一件奇妙的事情,想一想,一串任意的数据能够根据一定的规则转换成只有原来 1/2 - 1/5 长度的数据,并且能够按照相应的规则还原到原来的样子,听起来真是很酷。
可是哥们,你难道想自己写压缩算法吗?
之所以可以无损压缩,是因为有两种形式的重复存在于计算机数据中,zip 就是对这两种重复进行了压缩。
想自己写的话,就去研究下压缩原理吧。如果不是,就用别人的包好了。
可是哥们,你难道想自己写压缩算法吗?
之所以可以无损压缩,是因为有两种形式的重复存在于计算机数据中,zip 就是对这两种重复进行了压缩。
想自己写的话,就去研究下压缩原理吧。如果不是,就用别人的包好了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看一下java.util.zip下的类吧,
ZipFile
ZipInputStream
ZipOutputStream
以上3个类足够解决你的问题,这些类是jdk自带的哦
查了下android SDK,也有这些类
ZipFile
ZipInputStream
ZipOutputStream
以上3个类足够解决你的问题,这些类是jdk自带的哦
查了下android SDK,也有这些类
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询