频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
android解压缩的方法
2013-08-23 09:25:17           
收藏   我要投稿

/**
* 解压缩含有文件夹的压缩文件
*
* @param zipFile
* @param folderPath
* @throws ZipException
* @throws IOException
*/
public void upZipFile(File zipFile, String folderPath) throws ZipException,
IOException {
File desDir = new File(folderPath);
if (!desDir.exists()) {
// 创建目标目录
desDir.mkdirs();
}


ZipFile zf = new ZipFile(zipFile);
for (Enumeration<?> entries = zf.entries(); entries.hasMoreElements();) {
ZipEntry entry = ((ZipEntry) entries.nextElement());
if (entry.isDirectory()) {
String tmpStr = folderPath + File.separator + entry.getName();
tmpStr = new String(tmpStr.getBytes("8859_1"), "GB2312");
File folder = new File(tmpStr);
folder.mkdirs();
} else {
InputStream is = zf.getInputStream(entry);
String str = folderPath + File.separator + entry.getName();
// 转换编码,避免中文时乱码
str = new String(str.getBytes("8859_1"), "GB2312");
File desFile = new File(str);
if (!desFile.exists()) {
// 创建目标文件
desFile.createNewFile();
}
OutputStream os = new FileOutputStream(desFile);
byte[] buffer = new byte[1024];
int realLength;
while ((realLength = is.read(buffer)) > 0) {
os.write(buffer, 0, realLength);
os.flush();
}
is.close();
os.close();
}


}
zf.close();

}

 

 

 

/**
* 解压缩不含文件夹的压缩包
*
* @param zipFile
* @param folderPath
* @throws ZipException
* @throws IOException
*/
public void upZipFile(File zipFile, String folderPath) throws ZipException,
IOException {
File desDir = new File(folderPath);
if (!desDir.exists()) {
// 创建目标目录
desDir.mkdirs();
}


ZipFile zf = new ZipFile(zipFile);
for (Enumeration<?> entries = zf.entries(); entries.hasMoreElements();) {
ZipEntry entry = ((ZipEntry) entries.nextElement());
InputStream is = zf.getInputStream(entry);
String str = folderPath + File.separator + entry.getName();
// 转换编码,避免中文时乱码
str = new String(str.getBytes("8859_1"), "GB2312");
File desFile = new File(str);
if (!desFile.exists()) {
File fileParentDir = desFile.getParentFile();
if (!fileParentDir.exists()) {
// 创建目标文件的父目录
fileParentDir.mkdirs();
}
// 创建目标文件
desFile.createNewFile();
}
OutputStream os = new FileOutputStream(desFile);
byte[] buffer = new byte[1024];
int realLength;
while ((realLength = is.read(buffer)) > 0) {
os.write(buffer, 0, realLength);
os.flush();
}
is.close();
os.close();
}
zf.close();
}

 

 

 

点击复制链接 与好友分享!回本站首页
相关TAG标签 方法
上一篇:[Android]TextView实现分散对齐(两端对齐)
下一篇:Android仿Iphone通知角标的实现(一)
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站