Android 和 JAVA通用解压文件方法

本文提供了一种在Android环境中使用Java实现的ZIP文件解压方法。该方法通过一系列的输入输出流操作,能够将ZIP文件解压到指定的文件夹中,并支持解压文件夹结构。文中还附带了具体的调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下是Android 和 JAVA的通用解压ZIP文件的方法:

1、解压文件方法
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

import android.util.Log;

public class ZipUtil {
	private static final String TAG=ZipUtil.class.getSimpleName();

	/**
	 * 解压文件
	 * @param zipPath  压缩文件路径
	 * @param folder    解压目的文件夹(和压缩文件在同一目录下)
	 */
	public static void UnZip(String zipPath , String folder){
		FileInputStream fis=null;
		BufferedInputStream bis=null;
		
		FileOutputStream fos=null;
		BufferedOutputStream bos=null;
		
		ZipInputStream zis=null;
		
		try {
			File inputFile=new File(zipPath);
			File outFile =new File(inputFile.getParent()+File.separator+folder);
			
			if(!inputFile.exists()){
				Log.e(TAG, "zipPath not exists");
				return;
			}
			
			fis=new FileInputStream(inputFile);
			bis=new BufferedInputStream(fis);
			zis=new ZipInputStream(bis);
			
			if(!outFile.exists()){
				outFile.mkdirs();
			}
			
			ZipEntry zipEntry=null;
			while((zipEntry=zis.getNextEntry())!=null){
				if(zipEntry.isDirectory()){
					File folderFile=new File(outFile.getPath()+File.separator+zipEntry.getName());
					if(!folderFile.exists()){
						folderFile.mkdirs();
					}
				}
				else{
					fos=new FileOutputStream(outFile+File.separator+zipEntry.getName());
					bos=new BufferedOutputStream(fos);
					byte []b=new byte[1024*10];
					int length=-1;
					while((length=zis.read(b))!=-1){
						bos.write(b, 0, length);
					}
					bos.flush();
					if(fos!=null)
						fos.close();
					if(bos!=null)
						bos.close();
				}
			}
			Log.i(TAG, "UnZip done!");
		} catch (Exception e) {
			Log.e(TAG, "UnZip Error!");
			e.printStackTrace();
		}finally{
			try {
				if(fis!=null)
					fis.close();
				if(zis!=null){
					zis.closeEntry();
					zis.close();
				}
				if(bis!=null)
					bis.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
}


2、调用方法:
ZipUtil.UnZip("C:\\Users\\Desktop\\test.zip", "test");



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值