六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 30|回复: 0

java压缩文件的代码

[复制链接]

升级  42%

27

主题

27

主题

27

主题

秀才

Rank: 2

积分
113
 楼主| 发表于 2013-2-3 14:15:58 | 显示全部楼层 |阅读模式
import java.io.File;
import org.apache.tools.zip.ZipOutputStream; //这个包在ant.jar里,要到官方网下载
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipEntry;

public class CompressBook {
    
public CompressBook() {}

    
/**//*
    * inputFileName 输入一个文件夹
    * zipFileName 输出一个压缩文件夹
    
*/
    
public void zip(String inputFileName) throws Exception {
        String zipFileName 
= "c:\\test.zip"//打包后文件名字
        System.out.println(zipFileName);
        zip(zipFileName, 
new File(inputFileName));
    }


    
private void zip(String zipFileName, File inputFile) throws Exception {
        ZipOutputStream out 
= new ZipOutputStream(new FileOutputStream(zipFileName));
        zip(out, inputFile, 
"");
        System.out.println(
"zip done");
        out.close();
    }


    
private void zip(ZipOutputStream out, File f, String base) throws Exception {
        
if (f.isDirectory()) {
           File[] fl 
= f.listFiles();
           out.putNextEntry(
new ZipEntry(base + "/"));
           base 
= base.length() == 0 ? "" : base + "/";
           
for (int i = 0; i < fl.length; i++{
           zip(out, fl, base 
+ fl.getName());
         }

        }
else {
           out.putNextEntry(
new ZipEntry(base));
           FileInputStream in 
= new FileInputStream(f);
           
int b;
           System.out.println(base);
           
while ( (b = in.read()) != -1{
            out.write(b);
         }

         in.close();
       }

    }


    
public static void main(String [] temp){
        CompressBook book 
= new CompressBook();
        
try {
           book.zip(
"c:\\c");//你要压缩的文件夹
        }catch (Exception ex) {
           ex.printStackTrace();
       }

    }

}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表