ZipUtil

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;


/** * 压缩/解压缩zip包处理类 * 根据文件的路径生成对应的压缩文件 * del 是否删除原来文件 * @date 2015-2-6 */
public class ZipUtil {

    public static String zipSingleFile(String file,boolean del)  
            throws IOException {  
        File f = new File(file);  
        String zipFile =  file.substring(0, file.lastIndexOf("."))+ ".zip";
        if (!f.exists()) {  
            System.out.println("文件不存在");  
        } else {  
            File ff = new File(zipFile);  
            if (!f.exists()) {  
                ff.createNewFile();  
            }  
            // 创建文件输入流对象 
            FileInputStream in = new FileInputStream(file);  
            // 创建文件输出流对象 
            FileOutputStream out = new FileOutputStream(zipFile);  
            // 创建ZIP数据输出流对象 
            ZipOutputStream zipOut = new ZipOutputStream(out);  
            // 得到文件名称 
            String fileName = file.substring(file.lastIndexOf('/') + 1, file.length());  
            // 创建指向压缩原始文件的入口 
            ZipEntry entry = new ZipEntry(fileName);  
            zipOut.putNextEntry(entry);  
            // 向压缩文件中输出数据 
            int number = 0;  
            byte[] buffer = new byte[512];  
            while ((number = in.read(buffer)) != -1) {  
                zipOut.write(buffer, 0, number);  
            }  
            zipOut.close();  
            out.close();  
            in.close(); 
            if(del){
                f.delete();
            } 
        }  
        return zipFile;  
    } 
    public static void main(String[] args) throws IOException {
        String file = "E:/测试的文件-0202.xls";
        //String zipFile1 = "src/zip/单个文件压缩.zip";
        String flag1 = zipSingleFile(file, true);
    }
}

你可能感兴趣的:(ZipUtil)