java 压缩文件夹速度,运用java压缩一个文件夹中的任意几个文件

使用java压缩一个文件夹中的任意几个文件

之前有人写过用递归压缩一个文件夹里的所有文件,看了让人受益匪浅,

我这个程序没有那么复杂,但是在我现在的实际的项目中,根本不会用到压缩整个文件夹,需要选择文件来压缩,我就写了这个简单的小程序,贴出来大家分享吧。package test;

import java.util.ArrayList;

import java.util.List;

import java.util.zip.*;

import java.io.*;

/**

*

* @author lIHUI

*

*/

public class MyZip {

/**

* 压缩一个文件到一个zip

* @param in 输入的文件

* @param out 输出的zip名

* @param outEntry zip中的条目名

*/

public static void zip(String in,ZipOutputStream out,String outEntry) {

File inf = new File(in) ;

FileInputStream ins;

try {

if(inf.exists()){

ins = new FileInputStream(inf);

out.putNextEntry(new ZipEntry(outEntry));

int b ;

while ((b = ins.read()) != -1) {

out.write(b);

}

ins.close();

}else{

//按照项目的需要在没有的时候给予提示吧。

System.out.println("系统找不到指定文件:"+in);

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e2) {

e2.printStackTrace();

} catch (Exception e3) {

e3.printStackTrace();

}

}

/**

*

* @param out 输出的zip名

* @param in 输入的目录

* @param inEntrys 输入的条目集合

*/

public static void zip(String out,String in,List inEntrys) {

try {

OutputStream zipFileName_fileOutputStream = new FileOutputStream(out);

ZipOutputStream zipOutputStream = new ZipOutputStream(zipFileName_fileOutputStream);

for(String inEntry:inEntrys){

zip(in+inEntry,zipOutputStream,inEntry);

}

zipOutputStream.close();

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

List inEntrys=new ArrayList();

inEntrys.add("a.txt");

inEntrys.add("b.txt");

//可以加一个实际没有的文件试试

inEntrys.add("xy.txt");

zip("e:\\a.zip","e:\\a\\",inEntrys);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值