文件压缩实例

来源:互联网 发布:淘宝流量钱包有什么用 编辑:程序博客网 时间:2024/05/18 04:47

文件压缩

package com.nzf.file;import java.io.File;import java.io.FileFilter;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;/** * 文件压缩实例 * @author Administrator * */public class CompressFile {    /**     * 文件压缩实例     * @param zipOutput     * @param file     * @throws IOException     */    public static void addFile (ZipOutputStream zipOutput, File file) throws IOException{        System.out.println("正在添加文件 :" + file.getAbsolutePath());        // 每个压缩对象都为一个ZipEntry实例        ZipEntry zipEntry = new ZipEntry(file.getName());        // 将这个实例放入压缩文件中        zipOutput.putNextEntry(zipEntry);        //读取文件内容        FileInputStream ins = new FileInputStream(file);        byte[] tmp = new byte[1024];        int len = 0;        while((len = ins.read(tmp)) != -1) {            zipOutput.write(tmp, 0, len);        }        ins.close();        // 关闭当前的ZipEntry 实例        zipOutput.closeEntry();    }    public static void main(String[] args) throws IOException{        File sourceFolder = new File("E:/Qiyi/Offline");        File targetFile = new File("E:/Qiyi.zip");        //使用ZipOutputStream 创建压缩文件        ZipOutputStream zipOutput = new ZipOutputStream(new FileOutputStream(targetFile));        //列出该文件夹下的所有文件        File[] subFiles = sourceFolder.listFiles(new FileFilter(){            public boolean accept(File pathname){                if (pathname.isFile()) {                    return true;                }                return false;            }        });        for(int i=0; i < subFiles.length; i++) {            addFile(zipOutput, subFiles[i]);        }        zipOutput.close();        System.out.println("\r\n文件压缩完成:" + targetFile.getAbsolutePath());    }}
1 0
原创粉丝点击