java 压缩文件(文件夹)
2011-07-08 22:01
645 查看
package others; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.zip.Adler32; import java.util.zip.CheckedOutputStream; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream; public class Zip { /** * 中文条件下文件(夹)压缩 * */ public static void zipCompress(String src,String des) throws IOException{ ZipOutputStream out=null; try { CheckedOutputStream cusm= new CheckedOutputStream(new FileOutputStream(des),new Adler32()); out=new ZipOutputStream(new BufferedOutputStream(cusm)); fileZip(new File(src),out,""); }finally{ if(out!=null){ out.close(); } } } private static void fileZip(File file, ZipOutputStream out, String base) throws IOException{ if(file.isFile()){ if(base.length()>0){ out.putNextEntry(new ZipEntry(base)); }else{ out.putNextEntry(new ZipEntry(file.getName())); } BufferedReader in=new BufferedReader( new InputStreamReader(new FileInputStream(file),"ISO8859_1")); int c; while((c=in.read())!=-1){ out.write(c); } in.close(); }else if(file.isDirectory()){ File[] subFiles=file.listFiles(); out.putNextEntry(new ZipEntry(base+File.separator)); base=base.length()!=0?base+File.separator:""; for(File subFile:subFiles){ fileZip(subFile,out,base+subFile.getName()); } } } public static void main(String[] args) { /*需要压缩的源文件夹路径*/ String folderSrcPath="E://123"; /*压缩后的zip文件及其存放位置*/ String forderDesPath="E://压缩文件.zip"; try { Zip.zipCompress(folderSrcPath,forderDesPath); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("完成压缩"); } }
说明:1、需要引入jar包
2,、当被压缩的文件夹比较大时,会很慢的,耗时较多
参考:http://blog.csdn.net/gaoyusi4964238/article/details/4948151
相关文章推荐
- 用java压缩文件夹/文件
- 使用java对文件或文件夹进行压缩和加密
- JAVA 文件处理 压缩文件或文件夹 ZipOutputStream ZipEntry 文件处理
- JAVA实现把指定文件夹下的所有文件压缩成zip包
- 使用Java zip包和apach 的ant包对文件、文件夹进行压缩,兼容中文
- Java 小程序 实现网络下载图片到制定文件夹,压缩和删除文件
- java将文件夹中的多个文件(包含子文件夹)压缩成zip文件
- Java中使用Ant压缩指定文件夹或文件
- JAVA实现把指定文件夹下的所有文件压缩成zip包
- java实现zip压缩文件/文件夹
- Java将指定文件/文件夹压缩成zip、rar压缩文件
- java 把指定文件夹下的所有文件目录和文件都压缩到指定文件夹下
- java创建压缩文件方法(包括文件夹下包含文件夹)
- java中复制文件和文件夹Demo,压缩单个文件夹Demo,压缩文件和文件夹Demo
- java实现zip压缩文件/文件夹
- Java处理压缩文件或文件夹相关的一些方法的实现
- java实现zip压缩文件/文件夹
- JAVA实现把指定文件夹下的所有文件压缩成zip包
- 使用Java代码压缩文件或文件夹
- 利用java的ZipOutputStream类压缩文件,解压文件或文件夹中的文件