java zip 目录_java zip压缩文件和目录



/**

* 压缩文件

*

* @param 压缩源

* @param 压缩zip

* @param 压缩目标

*

* @throws IOException

*/

private static void zipFile(String source,

ZipOutputStream zos, String target) throws IOException {

// zip实体

ZipEntry ze = new ZipEntry(target);

zos.putNextEntry(ze);

// 读取文件压缩

FileInputStream fileStream = new FileInputStream(new File(source));

int readLen = 0;

byte[] buffer = new byte[8192];

while((readLen = fileStream.read(buffer)) != -1){

zos.write(buffer, 0, readLen);

}

fileStream.close();

}

/**

* 压缩目录

*

* @param 压缩源

* @param 压缩zip

* @param 压缩目标

*

* @throws IOException

*/

private static void zipDir(String source,

ZipOutputStream zos, String target) throws IOException {

// zip实体

ZipEntry ze = new ZipEntry(target);

zos.putNextEntry(ze);

// 目录下所有文件

File dir = new File(source);

android.util.Log.e(TAG,source);

File[] fileList = dir.listFiles();

if(fileList != null){

//android.util.Log.e(TAG, "file szie " + fileList.length);

for(File fileSub : fileList) {

//android.util.Log.e(TAG, "file name " + fileSub.getName());

//android.util.Log.e(TAG, "file path " + fileSub.getPath());

if(fileSub.isDirectory()){

zipDir(fileSub.getPath(), zos,  target + fileSub.getName() + "/");

}else{

zipFile(fileSub.getPath(), zos, target + fileSub.getName());

}

}

}

}

/**  * zip  *  * @param 压缩源  * @param 压缩目标  *  * @throws IOException  */ public static void zip(String source,   String outfile) throws IOException {  OutputStream os = null;  ZipOutputStream zos = null;  synchronized(class){   os = new FileOutputStream(file, false);   zos = new ZipOutputStream(new BufferedOutputStream(os));   zipDir(source, zos, source.getName() + "/");   zos.finish();   zos.close();  } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值