文件压缩
package com.nzf.file;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
* 文件压缩实例
* @author Administrator
*
*/
public class CompressFile {
/**
* 文件压缩实例
* @param zipOutput
* @param file
* @throws IOException
*/
public static void addFile (ZipOutputStream zipOutput, File file) throws IOException{
System.out.println("正在添加文件 :" + file.getAbsolutePath());
// 每个压缩对象都为一个ZipEntry实例
ZipEntry zipEntry = new ZipEntry(file.getName());
// 将这个实例放入压缩文件中
zipOutput.putNextEntry(zipEntry);
//读取文件内容
FileInputStream ins = new FileInputStream(file);
byte[] tmp = new byte[1024];
int len = 0;
while((len = ins.read(tmp)) != -1) {
zipOutput.write(tmp, 0, len);
}
ins.close();
// 关闭当前的ZipEntry 实例
zipOutput.closeEntry();
}
public static void main(String[] args) throws IOException{
File sourceFolder = new File("E:/Qiyi/Offline");
File targetFile = new File("E:/Qiyi.zip");
//使用ZipOutputStream 创建压缩文件
ZipOutputStream zipOutput = new ZipOutputStream(new FileOutputStream(targetFile));
//列出该文件夹下的所有文件
File[] subFiles = sourceFolder.listFiles(new FileFilter(){
public boolean accept(File pathname){
if (pathname.isFile()) {
return true;
}
return false;
}
});
for(int i=0; i < subFiles.length; i++) {
addFile(zipOutput, subFiles[i]);
}
zipOutput.close();
System.out.println("\r\n文件压缩完成:" + targetFile.getAbsolutePath());
}
}