java上传文件,压缩,解压保存

来源:互联网 发布:mac qq接收不了文件 编辑:程序博客网 时间:2024/06/04 17:41
<pre name="code" class="html">import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.Enumeration;import java.util.List;import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipFile;import org.apache.tools.zip.ZipOutputStream;import com.xbrc.common.misc.OperationException;import com.xbrc.common.misc.OperationException.ExceptionType;
/**     * 打包指定文件列表为zip     *      * @param files     * @param strZipFileFullPath     * @throws Exception     */    public static void zipFiles(String strZipFileFullPath, List<File> files) {        try {            File file = new File(strZipFileFullPath);            if (!file.exists()) {                file.createNewFile();            }            FileOutputStream fous = new FileOutputStream(file);            ZipOutputStream zipOut = new ZipOutputStream(fous);            zipFile(files, zipOut);            zipOut.close();            fous.close();        } catch (Exception e) {            e.printStackTrace();        }    }
/**     * 解压     *      * @param directory     *            解压完保存的路径     * @param zip     *            压缩包文件     */
public static void unZipFile(String directory, File zip) {        try {            int count = -1;            int buffer = 2048;            File file = null;            InputStream is = null;            FileOutputStream fos = null;            BufferedOutputStream bos = null;            ZipFile zipFile = new ZipFile(zip, "GBK");            Enumeration en = zipFile.getEntries();            createFolder(directory);            while (en.hasMoreElements()) {                byte buf[] = new byte[buffer];                ZipEntry entry = (ZipEntry) en.nextElement();                String fileName = entry.getName();                String filePath = directory +"/"+ fileName;                if(entry.isDirectory()){                    createFolder(filePath);                }else{                    file = new File(filePath);                    file.createNewFile();                                        is = zipFile.getInputStream(entry);                    fos = new FileOutputStream(file);                    bos = new BufferedOutputStream(fos, buffer);                    while ((count = is.read(buf)) > -1) {                        bos.write(buf, 0, count);                    }                    bos.close();                    fos.close();                    is.close();                }            }            zipFile.close();        } catch (IOException e) {            e.printStackTrace();        }    }
private static void createFolder(String path) {        try {            File uploadFilePath = new File(path);            if (uploadFilePath.exists() == false) {                uploadFilePath.mkdirs();            }        } catch (Exception ex) {            throw new OperationException(ExceptionType.ERROR, "创建文件夹异常");        }    }

0 0
原创粉丝点击