当前位置:操作系统 > 安卓/Android >>

Android文件压缩和解压

Java代码 
package com.maidong.utils; 
 
import java.io.BufferedInputStream; 
import java.io.BufferedOutputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.io.UnsupportedEncodingException; 
import java.util.ArrayList; 
import java.util.Collection; 
import java.util.Enumeration; 
import java.util.zip.ZipEntry; 
import java.util.zip.ZipException; 
import java.util.zip.ZipFile; 
import java.util.zip.ZipOutputStream; 
 
import org.apache.http.protocol.HTTP; 
 
public class ZipUtils { 
    private static final int BUFF_SIZE = 1024 * 1024; // 1M Byte 
 
    /**
     * 批量压缩文件(夹)
     * 
     * @param resFileList
     *            要压缩的文件(夹)列表
     * @param zipFile
     *            生成的压缩文件
     * @throws IOException
     *             当压缩过程出错时抛出
     */ 
    public static void zipFiles(Collection<File> resFileList, File zipFile) throws IOException { 
 
        ZipOutputStream zipout = null; 
        try { 
            zipout = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile), BUFF_SIZE)); 
            for (File resFile : resFileList) { 
                zipFile(resFile, zipout, ""); 
            } 
        } finally { 
            if (zipout != null) 
                zipout.close(); 
        } 
    } 
 
    /**
     * 批量压缩文件(夹)
     * 
     * @param resFileList
     *            要压缩的文件(夹)列表
     * @param zipFile
     *            生成的压缩文件
     * @param comment
     *            压缩文件的注释
     * @throws IOException
     *             当压缩过程出错时抛出
     */ 
    public static void zipFiles(Collection<File> resFileList, File zipFile, String comment) throws IOException { 
        ZipOutputStream zipout = null; 
        try { 
            zipout = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile), BUFF_SIZE)); 
            for (File resFile : resFileList) { 
                zipFile(resFile, zipout, ""); 
            } 
            zipout.setComment(comment); 
 
        } finally { 
            if (zipout != null) 
                zipout.close(); 
        } 
    } 
 
    /**
     * 解压缩一个文件
     * 
     * @param zipFile
     *            压缩文件
     * @param folderPath
     *            解压缩的目标目录
     * @throws IOException
     *             当解压缩过程出错时抛出
     */ 
    public static void upZipFile(File zipFile, String folderPath) throws ZipException, IOException { 
        File desDir = new File(folderPath); 
        if (!desDir.exists()) { 
            desDir.mkdirs(); 
        } 
        ZipFile zf = new ZipFile(zipFile); 
        InputStream in = null; 
        OutputStream out = null; 
        try { 
            for (Enumeration<?> entries = zf.entries(); entries.hasMoreElements();) { 
                ZipEntry entry = ((ZipEntry) entries.nextElement()); 
                in = zf.getInputStream(entry); 
                String str = folderPath + File.separator + entry.getName(); 
                str = new String(str.getBytes("8859_1"), HTTP.UTF_8); 
                File desFile = new File(str); 
                if (!desFile.exists()) { 
                    File fileParentDir = desFile.getParentFile(); 
                    if (!fileParentDir.exists()) { 
     &nb

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,