java处理zip_java 处理 压缩文件zip,压缩 解压缩zip文件

package com;

import java.io.*;

import java.util.zip.*;

public class FileZip {

/**

* 压缩一层目录下的所有文件或压缩单个文件

*

* @param filePath

*            要压缩的文件路径 (单个文件需含文件名)

* @param toFilePath

*            压缩后的文件路径 含文件名

* @param isDelete

*            是否删除原路径 true为删除 false为不删除

*/

public void zip(String filePath, String toFilePath, boolean isDelete) {

File file = new File(filePath);

if (file.isDirectory()) {// 是否为文件目录,是为true

zipFiles(filePath, toFilePath);

if (isDelete) {

String[] files = file.list();

for (int i = 0; i < files.length; i++) {

File f = new File(filePath + "\\" + files[i]);

f.delete();

}

file.delete();

}

} else {

zipFile(filePath, toFilePath);

if (isDelete) {

file.delete();

}

}

}

/**

* 压缩某路径的单个文件

*

* @param filePath

*            要压缩的文件的路径(含文件名 如:d:\\tt.txt)

* @param zipname

*            压缩后的路径(含压缩后文件名 如:d:\\tt.zip)

*/

private void zipFile(String filePath, String zipname) {

FileOutputStream fos = null;

ZipOutputStream zipOut = null;

try {

fos = new FileOutputStream(zipname);// 创建文件输出流(低级流)

zipOut = new ZipOutputStream(fos);// 创建zip文件输出流

File f = new File(filePath);

FileInputStream fis = new FileInputStream(filePath);

ZipEntry ze = new ZipEntry(f.getName());

zipOut.putNextEntry(ze);

int c = 0;

while ((c = fis.read()) != -1) {

zipOut.write(c);

}

fis.close();

zipOut.close();

} catch (FileNotFoundException ex) {

ex.printStackTrace();

} catch (IOException ex) {

ex.printStackTrace();

}

}

/**

* 压缩某路径下所有文件

*

* @param filePath

*            要压缩的路径

* @param zipname

*            压缩后的路径(含压缩后文件名 如:d:\\tt.zip)

*/

private static void zipFiles(String filePath, String zipname) {

FileOutputStream fos = null;

ZipOutputStream zipOut = null;

String[] files = (new File(filePath)).list();

try {

fos = new FileOutputStream(zipname);// 创建文件输出流(低级流)

zipOut = new ZipOutputStream(fos);// 创建zip文件输出流

int i = 0;

for (i = 0; i < files.length; i++) {

File f = new File(files[i]);

FileInputStream fis = new FileInputStream(filePath + "\\"

+ files[i]);

ZipEntry ze = new ZipEntry(f.getName());

zipOut.putNextEntry(ze);

int c = 0;

while ((c = fis.read()) != -1) {

zipOut.write(c);

}

fis.close();

}

zipOut.close();

} catch (FileNotFoundException ex) {

ex.printStackTrace();

} catch (IOException ex) {

ex.printStackTrace();

}

}

/**

* @param args

*/

public static void main(String[] args) {

zipFiles("F:\\java\\webService\\Test", "F:\\java\\webService\\Test\\file.zip");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值